I want to fetch count requests by status for each request I use this code and it works, but I don't think it's correct
'requests_count' => Request::where('user_id', auth()->id())
->addSelect([
'active' => Request::selectRaw('count(id)')
->where('status', 'active')
->where('user_id', auth()->id())
])
->addSelect([
'pause' => Request::selectRaw('count(id)')
->where('status', 'pause')
->where('user_id', auth()->id())
])
->addSelect([
'pending' => Request::selectRaw('count(id)')
->where('status', 'pending')
->where('user_id', auth()->id())
])
->addSelect([
'unapproved' => Request::selectRaw('count(id)')
->where('status', 'unapproved')
->where('user_id', auth()->id())
])
->first()
Is there a better and more effective way?