Protect your app with rate limiting:
Define Rate Limiters
RateLimiter::for('api', function (Request $request) {
return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());
});Custom Response
RateLimiter::for('uploads', function (Request $request) {
return Limit::perMinute(5)
->by($request->user()->id)
->response(fn() => response('Too many uploads!', 429));
});Apply to Routes
Route::middleware(['throttle:api'])->group(function () {
// Protected routes
});