hasAnyRole(['user', 'moderator', 'admin']); }); Gate::define('edit-product', function ($user, $product) { return $user->id === $product->user_id || $user->hasAnyRole(['moderator', 'admin']); }); Gate::define('delete-product', function ($user, $product) { return $user->id === $product->user_id || $user->hasAnyRole(['moderator', 'admin']); }); Gate::define('approve-product', function ($user) { return $user->hasAnyRole(['moderator', 'admin']); }); Gate::define('reject-product', function ($user) { return $user->hasAnyRole(['moderator', 'admin']); }); // Comment-related Gates Gate::define('delete-comment', function ($user, $comment) { return $user->id === $comment->user_id || $user->hasAnyRole(['moderator', 'admin']); }); // User management Gates Gate::define('manage-users', function ($user) { return $user->isAdmin(); }); Gate::define('manage-roles', function ($user) { return $user->isAdmin(); }); Gate::define('manage-settings', function ($user) { return $user->isAdmin(); }); // Admin check Gate::before(function ($user, $ability) { if ($user->isAdmin()) { return true; } }); } }