settingRepositoryFactory->createSettingRepository(); } public function createSettingService(): SettingService { return $this->settingService ??= new SettingService( $this->createSettingRepository(), $this->createTenantRepository(), $this->createRoleRepository(), $this->createDepartmentRepository(), $this->createThemeConfigService() ); } public function createSettingGateway(): SettingGateway { return $this->settingGateway ??= new SettingGateway($this->createSettingService()); } public function createSettingCacheService(): SettingCacheService { return $this->settingCacheService ??= new SettingCacheService(); } public function createThemeConfigService(): ThemeConfigService { return $this->themeConfigService ??= new ThemeConfigService(); } private function createTenantRepository(): TenantRepositoryInterface { return $this->settingRepositoryFactory->createTenantRepository(); } private function createRoleRepository(): RoleRepositoryInterface { return $this->settingRepositoryFactory->createRoleRepository(); } private function createDepartmentRepository(): DepartmentRepositoryInterface { return $this->settingRepositoryFactory->createDepartmentRepository(); } }