forgetCachedPermissions(); $master = PermissionCatalog::MASTER; $academicClasses = PermissionCatalog::ACADEMIC_CLASSES; $manage = PermissionCatalog::MANAGE; $finances = PermissionCatalog::FINANCES; $services = PermissionCatalog::SERVICES; $users = PermissionCatalog::USERS; $permissionNames = PermissionCatalog::all(); foreach ($permissionNames as $name) { Permission::firstOrCreate(['name' => $name, 'guard_name' => 'web']); } app()[PermissionRegistrar::class]->forgetCachedPermissions(); $roles = [ 'mahasiswa' => ['view-dashboard'], 'dosen' => ['view-dashboard'], 'staff-admin' => [ 'view-dashboard', ...$master, ...$academicClasses, ...$manage, ...$services, ...$users, ], 'staff-keuangan' => [ 'view-dashboard', ...$finances, ], 'kaprodi' => [ 'view-dashboard', 'view-academic-terms', 'view-courses', 'view-course-classes', 'view-course-registrations', 'view-students', ], 'developer' => $permissionNames, ]; foreach ($roles as $roleName => $rolePermissions) { $role = Role::firstOrCreate(['name' => $roleName, 'guard_name' => 'web']); $role->syncPermissions($rolePermissions); } } }