@souheibmadi You can use eloquent here like this:
public function getWilayasApi()
{
$ids = Stats::where('order_stats', 5)->pluck('id_stats')->toArray();
$dataWilayas = Wilaya::select('wilaya.mat_wilaya', 'wilaya.nom_wilaya')
->withCount([
'statsPerMonth as on_process' => function ($query) use ($ids) {
$query->whereIn('id_stats', $ids);
},
'statsPerMonth as returned' => function ($query) {
$query->where('id_stats', 3);
},
'statsPerMonth as delivered' => function ($query) {
$query->where('id_stats', 4);
},
])
->paginate(10);
return response()->json($dataWilayas);
}
And adjust your relationship:
public function statsPerMonth()
{
return $this->hasMany(StatsColis::class, 'wilaya_id', 'mat_wilaya')
->whereBetween('updated_at', [Carbon::now()->startOfMonth(), Carbon::now()->endOfMonth()]);
}