/**
  * Create and Attach a Role to User.
  * @param string     $role Role name.
  * @param User|array $user User or array of where clausules.
  * @return array Array containing $role and $user created.
  */
 protected function createAndAttachRole($role, $user)
 {
     $role = $this->createRole($role);
     if (!$user instanceof User) {
         $user = User::where($user)->first();
     }
     $role->users()->attach($user);
     $this->seeRoleAttachedToUserInDatabase($role, $user);
     return [$role, $user];
 }
 /**
  * Create and Attach a Permission to User.
  * @param string $permission
  * @param Role $role Role or array of where clausules.
  * @param string $readableName Permission readable name.
  * @return array Array containing created $permission and $role.
  */
 protected function createAndAttachPermissionToRole($permission, $role, $readableName = null)
 {
     $permission = $this->createPermission($permission, $readableName);
     if (!$role instanceof Role) {
         $role = User::where($role)->first();
     }
     $permission->roles()->attach($role);
     $this->seePermissionAttachedToRoleInDatabase($permission, $role);
     return [$permission, $role];
 }