Метод syn c обновляет отношение ваших товаров к магазину. Таким образом, при вызове $shop->products
вам будут возвращены только продукты, которые вы синхронизировали. Нет причин для доступа к данным сводной таблицы, если у вас нет дополнительных данных. Если да, то вы должны определить в своей модели отношения, что вы этого хотите. Например:
return $this->manyToMany(.....)->withPivot(['data_field_name'])
Если вы работаете с товарами в магазине, вам, вероятно, не нужна сводная таблица. Обычно один продукт может быть связан только с одним магазином, поэтому отношение будет $ this-> hasMany (Product :: class), а в таблице продуктов будет shop_id