Ваша задача с категориями не относится к контексту Laravel - это задача о хранении деревьев в СУБД.
Рекомендую ознакомиться вот с этим ответом:
https://toster.ru/answer?answer_id=952447#answers_...
Принадлежность товаров нескольким категориям в реляционных СУБД (если Вы работаете именно с ними) оформляется как связь
"многие-ко-многим" (many-to-many).
Роутинг Вы уже реализовали в своем ответе. {category} {subcategory} {productID} - это параметры роута, которые будут передаваться в контроллер (
документация).
В контроллере просто вытаскиваете эти параметры, фильтруете и подсовываете в SQL запрос. Хотя {category} (как впрочем и subcategory) здесь даже будет лишним. Но для красоты можете и оставить.