Cómo agrupar por muchas a muchas relaciones en Laravel

Cómo agrupar por muchas a muchas relaciones en Laravel

Tengo este modelo básico de base de datos Me gustaría agrupar a todos los usuarios por nombre de rol es decir, quiero enumerar los usuarios que son administradores y los demás en dos colecciones.

Modelo de base de datos

ingrese la descripción de la imagen aquí

Intenté hacer esto, pero solo funciona para una a muchas relaciones

User::with('roles’)->get()->groupBy(‘roles.name’);
Mostrar la mejor respuesta

Utilice el comodín * para omitir una matriz:

User::with('roles')->get()->groupBy('roles.*.name');

Sería bueno una pequeña explicación de lo que se salta el comodín (*).

suponga que la tabla dinámica role_user contiene una columna 'tipo'. ¿Cómo podemos agrupar a los usuarios por esta columna?

@AhmedIbrahimMeraneh agregue ->withPivot('type') a la relación roles del modelo User y use groupBy('roles.*.pivot.type')