Здесь нужно конкретезировать, что значит поддержка и изменение системы. Речь о том, что в основном, что бы понять можно ли тебе заходить в админку, достаточно:
Gate::define(‘admin-access’, function(User $user, Post $post) {
return $user->is_admin;
//or
return $user->role === ‘admin’;
});
а для того, что бы проверить имеет ли право пользователь редактировать пост или комментарий, достаточно:
Ga
te::define('edit-post', function(User $user, Post $post) {
return $user->id == $post->owner_id;
});
Вот это уже будет овер:
Gate::define('edit-post', function(User $user, Post $post) {
return $user->id == $post->owner_id
&& $user->hasPermissionTo('edit posts');
});