Also im Grunde sollte so etwas wie das Folgende funktionieren:
DB::table('departments')
->join('users','users.dept_id','=','departments.id')
->join('absences','users.id','=','absences.user_id')
->select('departments.id','departments.deptStringName', DB::raw("COUNT(*)"))
->groupBy('departments.id','departments.deptStringName')
->get();
Hinweis:Beim Gruppieren nach sollten Sie nach den eindeutigen Werten der Zeile gruppieren (z. B. dem Bezeichner). Wenn die Eindeutigkeit Ihrer Abteilungsnamen garantiert ist, können Sie auf die Auswahl und Gruppierung nach Department.id komplett verzichten.