Ты про отношения слышал ли ?
У меня есть отношения между категориями и продуктами. У продуктов может быть последняя по вложенности категория. Тоесть у продуктов нет привязки к категории "Овощи и фрукты", а есть привязка к категориям "Овощи", "фрукты"
https://laravel.com/docs/eloquent-relationships#many-to-many-polymorphic-relations
https://stackoverflow.com/a/33737203 через запрос с рекурсией собрать все дочерние каталоги в 1м запросе и далее выбрать товары по найденным id каталога
Берешь категорию. Рекурсивно проходишь по дереву от нё и собираешь id всех подкатегорий. По этим id через whereIn потом делаешь выборку товаров. Ну или по сводной таблице если у тебя товар - категория это многие ко многим
Обсуждают сегодня