Есть категории, а есть новости, публикации и тому подобное. Отсюда возникает вопрос, как их объединить. Достаточно поля "categories" в таблице публикаций, либо делать отдельную таблицу publication_category (publication_id | category_id), в которой будут хранится категории к которой принадлежит запись.
Первый вариант это вроде как правильно и по правилам нормальных форм, и проще в использовании (не придется детерминировать категории из строки и дальнейший поиск), а второй вариант хранит меньше информации, но придется занимать дополнительной обработкой.
И тут появляется второй вопрос. Я не знаю зачем, но я сделал динамический адрес админ панели (и все настройки системы у меня в бд) и теперь у меня проблемы с этим, ибо в некоторых местах, а в частности контроллерах. Можно ли как-то настройки из бд перенести в отдельный конфиг? Проблема в том, что я не могу делать запросы к бд в конфигах и из-за этого не получается его сделать.
То, что написано в той теме не описывает разницы между подходами. Что касается конфигураций, как я и писал там нельзя делать запросы. Только как вариант при сохранении настроек записывать в папку config файл.
По структуре - ничего дополнительно не скажешь. Это правильно, на начальном уровне. Мультикатегории для предметов и возможность работать с такими категориями (отношениями) штатными средствами Laravel.
Что касается конфигурации - сформируйте корректно свой вопрос, на — Можно ли как-то настройки из бд перенести в отдельный конфиг? — я ответил выше, можно и объяснил как это делается. Создавайте этот файл динамически, если есть необходимости, в чем проблема?