Городить кучу классов не надо. вообще не надо. Думаешь это круто смотрится? Handle хуяндле... начитаются всяких Елисеевых... возможно и круто, но поддерживать это говно такое себе.
сделай компоненты - т.е есть несколько сервисов и есть фасад, который агрегирует сервисы
https://refactoring.guru/ru/design-patterns/facade
component/User/Facade.php - здесь выносишь наружу методы которые ты хочешь использовать везде.
component/User/AuthenticateService.php - здесь методы регистрации, авторизации, выхода
component/User/SettingsService.php - здесь методы смены юзернейма и тд
component/User/Entity/User.php - сущность из БД
component/User/UserRepository.php - здесь методы работы с БП . В эти методы ты передаешь User.php
(мне нравится Service всегда дописывать, как вздумается вообщем. Главное чтобы понятно было другим людям)
делаешь еще компонент
component/Adv/Facade.php - здесь методы про объявления
и также делаешь внутренние сервисы.
Смотри чтобы не было цикличных зависимостей.
Постарайся использовать внешний EventListener - типа юзер первый раз авторизовался, выкидываешь это событие. Ловишь в компоненте Adv и создаешь ему демо объявление. Как пример.
Так ты будешь поддерживать слабую связанность.