Tôi tin rằng mình đã tìm ra giải pháp cho vấn đề này, chìa khóa là hàm DATE () trong mysql, hàm này chuyển đổi DateTime thành Date:
DB::table('page_views')
->select(DB::raw('DATE(created_at) as date'), DB::raw('count(*) as views'))
->groupBy('date')
->get();
Tuy nhiên, đây không thực sự là một giải pháp Laravel Eloquent, vì đây là một truy vấn thô. Sau đây là những gì tôi nghĩ ra trong cú pháp Eloquent-ish. Mệnh đề where đầu tiên sử dụng ngày carbon để so sánh.
$visitorTraffic = PageView::where('created_at', '>=', \Carbon\Carbon::now->subMonth())
->groupBy('date')
->orderBy('date', 'DESC')
->get(array(
DB::raw('Date(created_at) as date'),
DB::raw('COUNT(*) as "views"')
));