*/ public static array $listens = [ ApiRoutesRegistering::class => 'onApiRoutes', ]; public function register(): void { $this->app->singleton(RateLimitService::class, function ($app): RateLimitService { return new RateLimitService($app->make(CacheRepository::class)); }); $this->app->singleton(Services\WebhookSignature::class); $this->app->singleton(Services\WebhookService::class); } public function onApiRoutes(ApiRoutesRegistering $event): void { $event->middleware('api.auth', Middleware\AuthenticateApiKey::class); $event->middleware('auth.api', Middleware\AuthenticateApiKey::class); $event->middleware('api.docs.protect', ProtectDocumentation::class); if (file_exists(__DIR__.'/Routes/api.php')) { $event->routes(fn () => require __DIR__.'/Routes/api.php'); } } }