app->singleton(AuditionCacheService::class, function () { return new AuditionCacheService(); }); $this->app->singleton(EntryCacheService::class, function($app) { return new EntryCacheService($app->make(AuditionCacheService::class)); }); $this->app->singleton(TabulationService::class, function($app) { return new TabulationService($app->make(AuditionCacheService::class)); }); $this->app->singleton(DoublerService::class, function($app) { return new DoublerService($app->make(AuditionCacheService::class),$app->make(TabulationService::class)); }); } /** * Bootstrap any application services. */ public function boot(): void { Entry::observe(EntryObserver::class); Audition::observe(AuditionObserver::class); Room::observe(RoomObserver::class); RoomUser::observe(RoomUserObserver::class); School::observe(SchoolObserver::class); ScoreSheet::observe(ScoreSheetObserver::class); ScoringGuide::observe(ScoringGuideObserver::class); Student::observe(StudentObserver::class); SubscoreDefinition::observe(SubscoreDefinitionObserver::class); User::observe(UserObserver::class); Event::listen( AuditionChange::class, RefreshAuditionCache::class ); } }