public function fill(UserInterface $user, array $credentials)
{
$this->fireEvent('sentinel.user.filling', compact('user', 'credentials'));
$loginNames = $user->getLoginNames();
list($logins, $password, $attributes) = $this->parseCredentials($credentials, $loginNames);
if (is_array($logins)) {
$user->fill($logins);
} else {
$loginName = reset($loginNames);
$user->fill([$loginName => $logins]);
}
$user->fill($attributes);
if (isset($password)) {
$password = $this->hasher->hash($password);
$user->fill(compact('password'));
}
$this->fireEvent('sentinel.user.filled', compact('user', 'credentials'));
}