/** * Create a new user instance after a valid registration. * * @param array $data * @param boolean $fromSocial * @return User */ protected function create(array $data, $fromSocial = false) { DB::beginTransaction(); try { $user = User::create(['display_name' => $data['display_name'], 'email' => $data['email'], 'name' => $data['name'], 'password' => bcrypt($data['password']), 'url_avatar' => $data['url_avatar'], 'url_avatar_thumb' => $data['url_avatar'], 'activation_code' => str_random(32)]); $defaultRole = Role::where('name', 'user')->firstOrFail(); $user->attachRole($defaultRole->id); if ($fromSocial) { $user->socialProviders()->save(new UserSocial(['provider' => $data['provider'], 'provider_id' => $data['provider_id']])); } DB::commit(); } catch (\Exception $ex) { DB::rollBack(); return false; } return $user; }