Вы пробовали вот так?
$total = count($gapok) + count($tunjab) + count($bpjs) + count($bonus);
Но если вам нужны все значения, попробуйте что-то вроде этого:
$users = DB::table('users')->whereNull('last_name')->union($first)->get();
, например:
$gapok = DB::table('gaji')->where('gaji.pegawai_id','=', $gaj->pegawai_id)->groupBy('gapok')->get();
$tunjab = DB::table('gaji')->where('gaji.pegawai_id','=', $gaj->pegawai_id)->groupBy('tunjab')->union($gapok)->get();
$bpjs = DB::table('gaji')->where('gaji.pegawai_id','=', $gaj->pegawai_id)->groupBy('bpjs')->union($tunjab)->get();
$bpjs = DB::table('gaji')->where('gaji.pegawai_id','=', $gaj->pegawai_id)->groupBy('bonus')->union($bpjs)->get();
Но вы можете проверить свой запрос, это может быть неправильно. Примечание:
$gapok = DB::table('gaji')
->where('gaji.pegawai_id','=', $gaj->pegawai_id)
->select('gaji.pegawai_id', DB::raw('count(*) as total'))
->groupBy('gaji.pegawai_id')
->get();