Потом почитайте доку про связи. А потом либо используйте связи, как надо, либо не используйте вообще.
Заодно и про пагинацию почитайте, что бы не изобретать велосипед с квадратными колёсами.
В комментариях выяснилось, что всё это выглядит весьма странно, но ладно...
Ну простое решение видится таким: аутентифицировали через auth:api, поймали событие Authenticated, в нём попытались аутентифицировать по auth:web. Получилось — всё отлично. Не получилось — не всё отлично.
Ну и можно проверить идентичность пользователей после обоих попыток, типа
Папки app, routes, как и файлы .env (и прочие) в принципе не должны быть доступны из вне. Если у вас это так, то тут не роботс.тхт править надо, а руки тому, кто так веб-сервер настроил.
Не нравятся «глобальные» переменные, используйте вариант №2.
Не нравятся запросы в сервис-провайдерах, делайте их в каких-нибудь сторонних классах, а в сервис-провайдере вызывайте этот класс.
Либо пусть сервис провайдер обращается к какому-то классу и получает все нужные переменные для композинга.
Вариант №3: подписываться на события композинга самостоятельно и строить свою логику.