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(): TenantRepository { return $this->settingRepositoryFactory->createTenantRepository(); } private function createRoleRepository(): RoleRepository { return $this->settingRepositoryFactory->createRoleRepository(); } private function createDepartmentRepository(): DepartmentRepository { return $this->settingRepositoryFactory->createDepartmentRepository(); } }