app->bind(Clock::class, SystemClock::class); $this->app->bind(TokenGenerator::class, RandomTokenGenerator::class); $this->app->bind(PasswordHasher::class, BcryptPasswordHasher::class); $this->app->bind(Emailer::class, LaravelMailer::class); $this->app->bind( EmailFactory::class, function () { return new LaravelEmailFactory( confirmationUrlPrefix: config('app.frontend_url') .'/confirm-email?token=', ); }, ); $this->app->bind( SignupUser::class, function (Application $app) { return new SignupUser( userRepo: $app->make(UserRepository::class), tokenRepo: $app->make( EmailConfirmationTokenRepository::class, ), emailer: $app->make(Emailer::class), emailFactory: $app->make(EmailFactory::class), clock: $app->make(Clock::class), fromAddress: config('mail.from.address'), ); }, ); } public function boot(): void { // } }