Как разнести приложение по поддоменам, сохранив на всех частях одну аутентификацию?
Подозреваю, что для этого самым простым решением будет использовать использовать одну и ту же базу, в которой эти пользователи лежат. Например,
так. Прописать отдельное подключение до базы с пользователями можно как в модели, так и при использовании
DB::.
Второй вариант, более сложный - проксировать данные при их обновлении либо на уровне самой БД (не все БД такое умеют к сожалению, синхронизировать отдельные таблицы в режиме "мульти-мастер"), либо с помощью программы работающей в фоновом режиме, которая будет каждый N-секунд/минут/часов/etc проверять данные в обоих БД и синхронизировать их.
Правильно ли использовать одну таблицу для всех?
А в чем Вы видите потенциальную проблему такого подхода?
Но мне кажется такая система немного запутанной и сложной для дальнейшего усовершенствования.
Лично мне, сложной она не кажется и особо запутанной тоже. Другой вопрос в том, что в Laravel есть уже готовая система и авторизации, и
аутентификации и т.д., в т.ч. различные механизмы схожие с теми, что Вы обозначили как "права доступа".