/**
* @param Model $user
*
* @return string
*/
public function encode(Model $user)
{
/** @var User $user */
$secret = str_random();
$token = json_encode([self::KEY_USER_ID => $user->getKey(), self::KEY_SECRET => $secret]);
$user->{User::FIELD_API_TOKEN} = $secret;
$user->saveOrFail();
return $token;
}