*/ protected $policies = [ // Orders... Order::class => OrderPolicy::class, OrderItem::class => OrderItemPolicy::class, // Products... Product::class => ProductPolicy::class, Coupon::class => CouponPolicy::class, Review::class => ReviewPolicy::class, // Product Attributes... Attribute::class => AttributePolicy::class, // Inventories... Inventory::class => InventoryPolicy::class, // Channels... Channel::class => ChannelPolicy::class, // Collectons... Collection::class => CollectionPolicy::class, // Categories... Category::class => CategoryPolicy::class, // Brands... Brand::class => BrandPolicy::class, // Users... User::class => UserPolicy::class, // Carousels... Carousel::class => CarouselPolicy::class, Payout::class => PayoutPolicy::class, // CMS... Gallery::class => GalleryPolicy::class, LegalPage::class => LegalPagePolicy::class, ContactUS::class => ContactUSPolicy::class, // Marketing... Newsletter::class => NewsletterPolicy::class, NewsletterUser::class => NewsletterUserPolicy::class, // Banners... Banner::class => BannerPolicy::class, // Permissions (settings)... Role::class => RolePolicy::class, Permission::class => PermissionPolicy::class, // Location (settings)... Province::class => ProvincePolicy::class, PostBranch::class => PostBranchPolicy::class, // App settings... AppVersion::class => AppVersionPolicy::class, // Order settings... PaymentType::class => PaymentTypePolicy::class, ]; /** * Register any authentication / authorization services. */ public function boot(): void { Gate::define('isMe', fn ($user) => $user->isMe()); Gate::define('isAdmin', fn ($user) => $user->isAdmin()); Gate::define('systemUser', fn ($user) => $user->isMe() || $user->hasRole(['admin', 'manager'])); Gate::define('vendor', fn ($user) => $user->hasRole('vendor')); Gate::define('isVendor', fn ($user) => $user->hasRole('vendor')); Gate::define('viewApiDocs', function (User $user) { return in_array($user->email, ['nurmuhammet@mail.com']); }); } }