/**
  * Create a new user instance after a valid registration.
  *
  * @param  array  $data
  * @return User
  */
 protected function create(array $data)
 {
     $verification_token = str_random(50);
     $user = User::create(['username' => $data['username'], 'email' => $data['email'], 'password' => bcrypt($data['password']), 'verification_token' => $verification_token]);
     Profile::create(['user_id' => $user->id, 'firstname' => $data['firstname'], 'lastname' => $data['lastname'], 'gender' => $data['gender']]);
     Event::fire(new UserRegistered($user));
     return $user;
 }