count(); $totalClicks = BonusStat::where('type', 'click')->count(); // Stats per bonus $bonusStats = Bonus::select('id', 'name') ->withCount([ 'stats as views_count' => function ($query) { $query->where('type', 'view'); }, 'stats as clicks_count' => function ($query) { $query->where('type', 'click'); } ]) ->orderBy('clicks_count', 'desc') ->get(); // Last 7 days activity $dailyActivity = BonusStat::select( DB::raw('DATE(created_at) as date'), DB::raw('SUM(CASE WHEN type = "view" THEN 1 ELSE 0 END) as views'), DB::raw('SUM(CASE WHEN type = "click" THEN 1 ELSE 0 END) as clicks') ) ->where('created_at', '>=', now()->subDays(7)) ->groupBy('date') ->orderBy('date') ->get(); return Inertia::render('Dashboard', [ 'stats' => [ 'bonusesCount' => $bonusesCount, 'totalViews' => $totalViews, 'totalClicks' => $totalClicks, 'bonusStats' => $bonusStats, 'dailyActivity' => $dailyActivity, ] ]); } }