/**
  * @param int $userID
  * @param array $groupIDs
  */
 public function updateUserGroupPermissions($userID, array $groupIDs)
 {
     $permissionUser = $this->createModel()->getPermissionActions($userID)->pluck('permission_action_id', 'permission_id');
     $permissionGroup = $this->createModel()->getPermissionActions($groupIDs, null, 'group')->pluck('permission_action_id', 'permission_id')->unique();
     //We add permissions that the group has but the user doesn't.
     $permissionsToAdd = $permissionGroup->diff($permissionUser);
     if (!$permissionsToAdd->isEmpty()) {
         foreach ($permissionsToAdd as $actionID) {
             $this->addUserPermission($userID, $actionID);
         }
     }
     //We remove permissions the user has that the group doesn't.
     $permissionsToRemove = $permissionUser->diff($permissionGroup);
     if (!$permissionsToRemove->isEmpty()) {
         PermissionUser::deletePermissionUsers($permissionsToRemove->keys()->toArray());
     }
 }