public function storeRegistrationForm()
{
$inputs = request()->get();
$validator = new RegistrationValidator();
$validation = $validator->validate($inputs);
if (count($validation)) {
session()->set('input', $inputs);
return redirect()->to(url()->previous())->withError(RegistrationValidator::toHtml($validation));
}
$token = bin2hex(random_bytes(100));
$connection = db()->connection();
try {
$connection->begin();
$user = new User();
$success = $user->create(['email' => $inputs['email'], 'password' => security()->hash($inputs['password']), 'token' => $token]);
if ($success === false) {
throw new Exception('It seems we can\'t create an account, ' . 'please check your access credentials!');
}
queue(\Components\Queue\Email::class, ['function' => 'registeredSender', 'template' => 'emails.registered-inlined', 'to' => $inputs['email'], 'url' => route('activateUser', ['token' => $token]), 'subject' => 'You are now registered, activation is required.']);
$connection->commit();
} catch (TransactionFailed $e) {
$connection->rollback();
throw $e;
} catch (Exception $e) {
$connection->rollback();
throw $e;
}
return redirect()->to(route('showLoginForm'))->withSuccess(lang()->get('responses/register.creation_success'));
}