Используя View Composers, вы можете передавать данные в представление каждый раз, когда оно используется.
Вам следует передать на аутсорсинг html, который использует категории, в свою собственную часть, затем в ServiceProvider:
View::composer('some-view-partial', function ($view) {
return $this->someService->getAllCategories();
});
И да, вызов базы данных при каждой загрузке страницы влияет на загрузку вашей страницы время. Но представление composer - это лучший способ получать данные каждый раз (и само представление composer не повлияет на ваше время загрузки, то, что происходит внутри него, повлияет на него).
Рассмотрите возможность хранения ваши категории в вашем кеше приложений, если они не меняются так часто, чтобы вы не часто обращались к своей базе данных.