validate([ 'consents' => ['required', 'array'], 'consents.necessary' => ['required', 'boolean'], 'consents.statistics' => ['nullable', 'boolean'], 'consents.marketing' => ['nullable', 'boolean'], 'consents.preferences' => ['nullable', 'boolean'], ]); $consent = CookieConsent::updateOrCreate( [ 'user_id' => Auth::id(), 'session_id' => $request->session()->getId(), ], [ 'ip_address' => $request->ip(), 'user_agent' => $request->userAgent(), 'consents' => $validated['consents'], 'accepted_at' => now(), ] ); return response()->json(['success' => true, 'consent_id' => $consent->id]); } /** * Get current cookie consent preferences. */ public function show(Request $request) { $consent = CookieConsent::where('user_id', Auth::id()) ->orWhere('session_id', $request->session()->getId()) ->latest() ->first(); return response()->json($consent ? $consent->consents : null); } }