Что вы можете сделать, это:
public function calculate(Request $request)
{
return $this->count($request, Property::orderBy('aggregate', 'desc'), 'country','country');
}
Дополнительная информация:
Nova создаст запрос следующим образом (nova/src/Metrics/Partition.php@aggregate):
$results = $query->select(
$groupBy, DB::raw("{$function}({$wrappedColumn}) as aggregate")
)->groupBy($groupBy)->get();
$query
- это заданный экземпляр Builder вашей модели Property::orderBy(...)
, или Nova сделает это за вас, когда вы передадите модель Property::class
$function
будет методом (количество, мин, макс ...)
$wrappedColumn
будет указанным столбцом (страна в вашем случае)
$groupBy
будет задана группа по столбцу (стране) ... ну, вы поняли
В конце он построит:
$results = Property::orderBy('aggregate', 'desc')->select(
'country', DB::raw("count(country) as aggregate")
)->groupBy('country')->get();