app->singleton(PublicHolidaysStorageInterface::class, function () { return new DatabaseStorage(); }); $this->app->singleton(PublicHolidaysStateFactory::class, function() { return new PublicHolidaysStateFactory( $this->app->make(PublicHolidaysStorageInterface::class) ); }); $this->app->singleton(WorkingDayDeterminerFactory::class, function() { return new WorkingDayDeterminerFactory( $this->app->make(PublicHolidaysStateFactory::class) ); }); $this->app->singleton(DurationSolverFactory::class, function() { return new DurationSolverFactory( $this->app->make(WorkingDayDeterminerFactory::class), $this->app->make(DurationConvertor::class) ); }); $this->app->singleton(PublicHolidaysGeneratorFactory::class, function() { return new PublicHolidaysGeneratorFactory(); }); } /** * Bootstrap any application services. */ public function boot(): void { } }