public static function countsByStatus(Relation $relation) { $counts = []; foreach (array_keys(Task::$status_table) as $status_name) { $counts[$status_name] = 0; } foreach ($relation->select('status', DB::raw('count(*) as total'))->groupBy('status')->get() as $result) { $status_name = array_search($result->status, Task::$status_table); $counts[$status_name] = (int) $result->total; } return $counts; }