public function syncRolePermissions(Role $role, array $permissions, $module = null) { if (!is_null($module)) { $otherPermissions = $role->permissions()->where('module', '!=', strtolower($module))->get()->pluck('permission')->all(); $permissions = array_merge($otherPermissions, $permissions); } $permissionIds = Permission::whereIn('permission', (array) $permissions)->get(['id'])->pluck('id')->all(); $role->permissions()->sync($this->createPrivotIds($permissionIds)); }