Это звучит так, как будто вы хотите
public function foods() {
$this->hasMany('App\Diet\Food');
}
в вашей модели ShopFood и в вашей модели Shop
public function shopfoods() {
$this->hasMany('App\Diet\ShopFood')->with('foods');
}
Вы также можете сделать 2 отдельных отношения в модели магазина:
public function shopfoods() {
$this->hasMany('App\Diet\ShopFood');
}
public function shopfoodsWithFoods() {
$this->hasMany('App\Diet\ShopFood')->with('foods');
}
Таким образом, вы можете использовать все, что вам нужно в данный момент.
Но все это на самом деле не ясно ...
Я даже не уверен, как связаны 3 таблицы, поэтому hasMany - это всего лишь догадки.
Тем не менее, вы можете просто воспользоваться функцией «с».
PS
Также есть возможность просто объявить
protected $with = ['foods'];
в вашей модели ShopFood, если вы ВСЕГДА хотите, чтобы эти 2 были подключены. Это все в документации.