configureDefaults(); $this->configureSocialite(); $this->configureStripeWebhooks(); Cashier::useSubscriptionModel(Subscription::class); Cashier::useSubscriptionItemModel(SubscriptionItem::class); } protected function configureStripeWebhooks(): void { Event::listen(WebhookReceived::class, StripeEventListener::class); } protected function configureSocialite(): void { // Instagram Business Login Socialite::extend('instagram', function ($app) { $config = $app['config']['services.instagram']; return Socialite::buildProvider(InstagramProvider::class, $config); }); Event::listen(SocialiteWasCalled::class, FacebookExtendSocialite::class); Event::listen(SocialiteWasCalled::class, LinkedInExtendSocialite::class); Event::listen(SocialiteWasCalled::class, LinkedInPageExtendSocialite::class); Event::listen(SocialiteWasCalled::class, PinterestExtendSocialite::class); Event::listen(SocialiteWasCalled::class, TikTokExtendSocialite::class); } protected function configureDefaults(): void { Date::use(CarbonImmutable::class); DB::prohibitDestructiveCommands( app()->isProduction(), ); Password::defaults(fn (): ?Password => app()->isProduction() ? Password::min(12) ->mixedCase() ->letters() ->numbers() ->symbols() ->uncompromised() : null ); } }