ИМХО, я бы создал эти отношения :
- Пользователь -> Многие ко многим -> Группа
- Группа -> Многие ко многим -> Разрешение
Таким образом, пользователь имеет много разрешений через свои собственные groups .
В случае назначения разрешений непосредственно пользователю вы можете определить группу с name , равным пользователюusername или что-то подобное, так что вы можете ограничить эту группу таким образом, чтобы ее мог использовать только этот пользователь.
Вы можете найти ссылку на отношения, использованные выше, в документации laravel .
Надеюсь, это поможет.