This is a big ask - b/c so many moving parts. I'd suggest to
- build what you want incrementally, one or two models at a time
- focus initially on the links between the models (rather than the properties of the models, this is just additional typing)
- test the relationships - then think of expanding to the next model
It's good that you have an overall picture of what you want. But as you build it you will run into little things that will tweak how you round out the schema relations.
Likely I'd start with a Technician model (since that looks central to you) and work out from there.
(I've actually built a Laravel site that essentially does almost the same thing as what you describe.)
From a Laravel command line, I'd say start building the relationships between the core models of your schema:
scott@kudu:/srv/trades$ artisan make:model -a -- Technician
Model created successfully.
Created Migration: 2019_01_19_034657_create_technicians_table
Controller created successfully.
scott@kudu:/srv/trades$ artisan make:model -a -- Company
Model created successfully.
Created Migration: 2019_01_19_034705_create_companies_table
Controller created successfully.
scott@kudu:/srv/trades$ artisan make:model -a -- Customer
Model created successfully.
Created Migration: 2019_01_19_034723_create_customers_table
Controller created successfully.
scott@kudu:/srv/trades$ artisan make:model -a -- Service
Model created successfully.
Created Migration: 2019_01_19_034807_create_services_table
Controller created successfully.
scott@kudu:/srv/trades$