filters['startDate'] ?? null; $endDate = $this->filters['endDate'] ?? null; $data = Journalist::query() ->select( DB::raw('COUNT(*) as count'), DB::raw("DATE_FORMAT(created_at, '%Y-%m') as month") ) ->when($startDate, fn ($q) => $q->whereDate('created_at', '>=', $startDate)) ->when(! $startDate, fn ($q) => $q->where('created_at', '>=', now()->subMonths(6))) ->when($endDate, fn ($q) => $q->whereDate('created_at', '<=', $endDate)) ->groupBy('month') ->orderBy('month') ->get(); return [ 'datasets' => [ [ 'label' => 'Jurnalis Baru', 'data' => $data->pluck('count')->toArray(), 'fill' => 'start', 'borderColor' => '#6366F1', 'backgroundColor' => 'rgba(99, 102, 241, 0.1)', ], ], 'labels' => $data->pluck('month')->map(fn ($m) => Carbon::createFromFormat('Y-m', $m)->translatedFormat('M Y'))->toArray(), ]; } protected function getType(): string { return 'line'; } }