user()?->getAuthIdentifier() ?? $request->ip(); return [ Limit::perMinute(120)->by('api:'.$identifier), ]; }); RateLimiter::for('internal-api', function (Request $request): array { $remoteAddr = (string) $request->server('REMOTE_ADDR', $request->ip()); return [ Limit::perMinute(60)->by('internal:'.$remoteAddr), ]; }); RateLimiter::for('git-webhooks', function (Request $request): array { $deploymentId = $request->route('deployment'); $deploymentKey = is_object($deploymentId) ? (string) $deploymentId->getKey() : (string) $deploymentId; return [ Limit::perMinute(120)->by('webhook:'.$deploymentKey.':'.$request->ip()), ]; }); $versionFile = base_path('VERSION'); $appVersion = File::exists($versionFile) ? trim(File::get($versionFile)) : null; FilamentAsset::appVersion($appVersion ?: null); // Note: AuthEventListener is auto-discovered by Laravel 11+ // Do not manually subscribe - it causes duplicate audit log entries } }