Как сделать 3 различных группы пользователей в Laravel?
У меня будут 3 различных групп пользователей. Они не будут похожи друг на друга - слишком много различий в полях. Понятно, что можно сделать 3 таблицы для каждых пользователей и создать гуарда для каждого, но это создает многие ограничения, например при работе с Laravel Passport - там в таблице используется поле user_id (т е возможна работа только с 1 группой). Как мне правильно работать с 3 сильно отличающихся группами?
Никогда не делайте разные таблицы для юзеров.
Особенно если они пересекаются в коде, это будет такой гемор что потом не разгребсти.
Что значит сильные различия? Разные поля в профилях, разные доступы?
Для этого и делят на группу любым пакетом RBAC.
А для супер разных полей профиля можно создать key value таблицу и в ней хранить абсолютно любые данные. Вместо тонны новых столбцов в таблице юзеров.
Упрощенный вариант EAV подхода.
Если вас беспокоит конкретно Passport, то можно пойти путем ввода системы ролей для пользователей.
Есть например интересный пакет для организации ACL https://github.com/spatie/laravel-permission , тогда все пользователи будут в одной таблице, а далее вы просто распределяете роли и/или права каждому пользователю.