user() ->notifications() ->latest() ->cursorPaginate(20); return view('notifications.index', compact('notifications')); } public function markAsRead(Request $request, string $id): RedirectResponse { $notification = $request->user()->notifications()->findOrFail($id); $notification->markAsRead(); $data = $notification->data; if (! empty($data['project_id']) && ! empty($data['issue_id'])) { return redirect()->route('projects.issues.show', [$data['project_id'], $data['issue_id']]); } return back(); } public function markAllAsRead(Request $request): RedirectResponse { $request->user()->unreadNotifications->markAsRead(); return back()->with('status', 'All notifications marked as read.'); } }