isMethod('post') && $request->routeIs('api.v1.tenant.events.store')) { $user = $request->user(); if (!$user) { return response()->json(['message' => 'Unauthenticated'], 401); } $tenant = Tenant::findOrFail($user->tenant_id); if ($tenant->event_credits_balance < 1) { return response()->json(['message' => 'Insufficient event credits'], 422); } $request->merge(['tenant' => $tenant]); } elseif (($request->isMethod('put') || $request->isMethod('patch')) && $request->routeIs('api.v1.tenant.events.update')) { $eventSlug = $request->route('event'); $event = Event::where('slug', $eventSlug)->firstOrFail(); $tenant = $event->tenant; // For update, no credit check needed (already consumed on create) $request->merge(['tenant' => $tenant]); } return $next($request); } }