app->singleton(AttendancePolicyService::class); $this->app->singleton(SemesterRangeService::class); $this->app->singleton(AttendanceRecordSyncService::class); $this->app->singleton(StudentAttendanceWriterService::class); $this->app->singleton(TeacherAttendanceSubmissionService::class); $this->app->singleton(InvoiceConfigService::class); $this->app->bind(InvoiceGradeService::class, function ($app) { $config = $app->make(InvoiceConfigService::class); return new InvoiceGradeService($config->getGradeFee()); }); $this->app->bind(InvoiceTuitionService::class, function ($app) { $config = $app->make(InvoiceConfigService::class); return new InvoiceTuitionService( $app->make(InvoiceGradeService::class), $config->getGradeFee(), $config->getFirstStudentFee(), $config->getSecondStudentFee(), $config->getYouthFee(), $config->getTimezone() ); }); } public function boot(): void { $this->app->resolving(FormRequest::class, function (FormRequest $request, $app): void { $request->setContainer($app)->setRedirector($app->make(Redirector::class)); }); } }