У меня в проекте есть роли Admin, Owner, Client, User... В административном интерфейсе Admin и Owner совсем чуть-чуть отличаются (но отличия всё же есть). Нормально ли для каждой роли делать отдельную папку в Controllers и почти дублировать все контроллеры, чуть их модифицируя? Также получается и роуты дублируются... и виды. Посоветуйте пожалуйста организовать структуры. Есть просто мысль, что я много кода дублирую, нормально ли это? Для ролей и разрешений использую "laravel spatie permission".
Делить проект по фичам/контекстам на папки со своими контроллерами моделями и роутами - нормально.
Делить проект по тому как информация на страничке выводиться или по ролям - не нормально.
Нормально, если между порталами значительно различие. Более чем нормально. Но лучше всего, если разделение будет только на фронтенде, с шереными компонентами где нужно, а на бэкэнде - нормально спроектированный Rest, без разделения на роли в урлах.