=', now()) ->where('is_free', false) ->distinct('user_id') ->count('user_id'); $freeSubscribers = UserSubscriber::where('expired_at', '>=', now()) ->where('is_free', true) ->distinct('user_id') ->count('user_id'); // 2. Fetch Recent Data (Limit to 5) $recentSuggestions = Suggestion::with('user')->latest()->take(5)->get(); $recentTickets = Ticket::with('user')->latest('updated_at')->take(5)->get(); // 3. Prepare Chart Data (Last 7 Days) $chartDates = []; $newUsersData = []; $paidSubsData = []; $freeSubsData = []; for ($i = 6; $i >= 0; $i--) { $date = now()->subDays($i); $chartDates[] = $date->format('Y-m-d'); // Example: "2023-10-25" $dbDate = $date->format('Y-m-d'); // Line Chart Data: New Users $newUsersData[] = User::whereDate('created_at', $dbDate)->count(); // Column Chart Data: Subscriptions $paidSubsData[] = UserSubscriber::whereDate('created_at', $dbDate)->where('is_free', false)->count(); $freeSubsData[] = UserSubscriber::whereDate('created_at', $dbDate)->where('is_free', true)->count(); } return view('admin.dashboard.index', compact( 'totalUsers', 'paidSubscribers', 'freeSubscribers', 'recentSuggestions', 'recentTickets', 'chartDates', 'newUsersData', 'paidSubsData', 'freeSubsData' )); } }