Básicamente, algo como lo siguiente debería funcionar:
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();
Nota:Al agrupar por, debe agrupar por los valores únicos de la fila (por ejemplo, el identificador). Si se garantiza que los nombres de sus departamentos son únicos, puede omitir la selección y agrupación por departamento.id por completo.