@kieranjfahy First off hasManyThrough works for 3 models, you cannot use it without defining both far model and through model.
Next, if you want separate table for hours, then you won't use belongsToMany to get them in any way, because you can't eager load any relations on the Pivot model. You can do it on each pivot, but it's cumbersome.
That said, you will have:
Driver belongsToMany FieldTrip
FieldTrip belongsToMany Driver
// DriverTrip is the model for pivot table, but NOT Pivot model
Driver hasMany DriverTrip
FieldTrip hasMany DriverTrip
DriverTrip hasMany Hour
Driver hasManyThrough Hour, DriverTrip
FieldTrip hasManyThrough Hour, DriverTrip
This might be a little bit inconvenient, so I suggest you reconsider this appraoch. Do you really need that separate table? Why?
And what are those columns hours_something.. referring to?