Комментарии 2
Я бы порекомендовал:
Использовать политики для проверки прав, чтоб не писать костыли с if'ами. К тому не понятно почему формы создания/редактирования отображается для всех, а сохранять ее можно не всем.
Не понятно зачем нужно поле у клиентов updater_id, оно почти не носит никакой логики. Каждое последующее редактирование перетрет значение. Возможно лучше хранить отдельно логи: кто, когда и что изменил.
Создавать и редактировать вложенные модели лучше через их релейшены:
$client->representatives()->create($validated);
Про 1 и 2: это простенькая CRM, которая создавалась для микроорганизации, и пользуются ей максимум 3 человека (директор (admin), секретарь(read-only user) и менеджер(editor)). Поэтому момент с доступом к отображению формы был опущен, главное чтобы данные сохранялись. В этом случае им было достаточно updater_id. А вообще да, с Вами согласен. Если нужно более сложное решение, то всё это надо делать.
Про 3: Про создание модели согласен. А в случае обновления модели используется уникальный id, и потому использовать родительскую модель не требуется.
Ресурсные контроллеры в CRUD приложении Laravel