Если нужны и промежуточные модели - то лучше использовать не hasManyThrough как у вас в примере, а hasMany/belongsTo.
Т.е. исходной модели прописываете связь
public function owner(){
return $this->belongsTo('App\Owner');
}
У модели Owner прописываете связь
public function cars(){
return $this->hasMany('App\Car');
}
И вуаля - получаете сразу все что нужно через with: Model::with('owner.cars')