public function postRegister() { try { $jCryption = new JCryption(); $data = json_decode(\Input::get('data'), true); parse_str($jCryption->decrypt(session('jkey'), $data), $output); $group = \User::findGroupByName('Agency'); $user = \User::register(['email' => $output['email'], 'password' => $output['password'], 'activated' => true]); $user->addGroup($group); $aData = ['user_id' => $user->id, 'name' => $output['name'], 'owner_name' => $output['owner_name'], 'city' => $output['city'], 'country' => $output['country'], 'address' => $output['address'], 'phone' => $output['phone'], 'image' => null]; $agency = \Agency::register($aData); $mailData = ['layout' => 'emails.welcome', 'data' => ['user' => $user], 'subject' => 'Welcome to Programme Chameleon', 'from_email' => '*****@*****.**', 'to_email' => $user->email]; if (env('APP_ENV') === 'production') { $job = (new EmailJob($mailData))->onQueue('email-queue'); $this->dispatch($job); } else { // for devs only \Mail::send($mailData['layout'], $mailData['data'], function ($message) use($mailData) { $message->from($mailData['from_email'], 'Programme Chameleon Mailing Service'); $message->to($mailData['to_email'])->subject($mailData['subject']); }); } return \Response::json(['type' => 'success', 'message' => 'Successfully registered. You can login <a href="' . route('front.login') . '">here</a>']); } catch (\Exception $e) { if (isset($user)) { $user->delete(); } if (isset($agency)) { $agency->delete(); } return \Response::json(['type' => 'danger', 'message' => env('APP_DEBUG') ? $e->getMessage() : 'Error, please contact webmaster.']); } }