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