Как настроить единый интерфейс для регистрации и авторизации из web-приложения и мобильных приложений через Laravel Passport?
Опять сказки про документацию... Какого ещё «общего алгоритма» ты ждёшь? Там чётко написано, что надо предварительно настроить (установить Passport, создать нужного клиента, с типом password, в данном случае), как получить токен (передав логин/пароль) и как его отправить с фронта назад бэку (в заголовке, например). ВСЁ!
К регистрации Passport отношения не имеет.
К ролям Passport отношения так же не имеет, но частично похожее поведение можно реализовать через скоупы.
Используй jwt токен для авторизации. Напиши свой гвард который будет по нему авторизовывать юзера