user(); if ($user === null) { return $next($request); } $currentIds = LegalDocument::query()->where('is_current', true)->pluck('id'); if ($currentIds->isEmpty()) { return $next($request); } $acceptedIds = $user->consents()->pluck('legal_document_id'); $pending = $currentIds->diff($acceptedIds); if ($pending->isNotEmpty()) { if ($request->expectsJson()) { return response()->json([ 'message' => __('legal.accept_required'), 'pending' => $pending->values(), ], 428); } return redirect()->route('terms.accept'); } return $next($request); } }