public function postCreate()
 {
     $postValue = $this->getProfileInput();
     $profile = new Profile();
     if ($profile->validate($postValue)) {
         $profile->fill($postValue);
         $profile->save();
         return redirect(route('home'));
     } else {
         return view('profile.create', compact('profile'));
     }
 }
 public function createOrUpdateProfile($user, $data)
 {
     $profile = $user->profile;
     if (!$profile) {
         $profile = new Profile();
     }
     DB::beginTransaction();
     try {
         $profile->fill($data);
         if ($user->profile()->save($profile)) {
             DB::commit();
             return $user;
         } else {
             DB::rollback();
             return false;
         }
     } catch (Exception $ex) {
         DB::rollback();
         return false;
     }
 }
 /**
  * Update a user's profile
  *
  * @param $username
  * @return mixed
  * @throws Laracasts\Validation\FormValidationException
  */
 public function update($username, Request $request)
 {
     $user = $this->getUserByUsername($username);
     $input = Input::only('location', 'bio', 'twitter_username', 'github_username', 'career_title', 'education');
     $profile_validator = $this->profile_validator($request->all());
     if ($profile_validator->fails()) {
         $this->throwValidationException($request, $profile_validator);
         return redirect('profile/' . $user->name . '/edit')->withErrors($validator)->withInput();
     }
     if ($user->profile == null) {
         $profile = new Profile();
         $profile->fill($input);
         $user->profile()->save($profile);
     } else {
         $user->profile->fill($input)->save();
     }
     return redirect('profile/' . $user->name . '/edit')->with('status', 'Profile updated!');
 }
 /**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(Request $request)
 {
     $create_new_validator = $this->create_new_validator($request->all());
     if ($create_new_validator->fails()) {
         $this->throwValidationException($request, $create_new_validator);
     } else {
         $activation_code = str_random(60) . $request->input('email');
         $user = new User();
         $user->email = $request->input('email');
         $user->name = $request->input('name');
         $user->first_name = $request->input('first_name');
         $user->last_name = $request->input('last_name');
         $userAccessLevel = $request->input('user_level');
         $user->password = bcrypt($request->input('password'));
         // GET ACTIVATION CODE
         $user->activation_code = $activation_code;
         $user->active = '1';
         // GET IP ADDRESS
         $userIpAddress = new CaptureIp();
         $user->admin_ip_address = $userIpAddress->getClientIp();
         // SAVE THE USER
         $user->save();
         // ADD ROLE
         $user->assignRole($userAccessLevel);
         // CREATE PROFILE LINK TO TABLE
         $profile = new Profile();
         $profileInputs = Input::only('location', 'bio', 'twitter_username', 'github_username');
         $profile->fill($profileInputs);
         $user->profile()->save($profile);
         // THE SUCCESSFUL RETURN
         return redirect('edit-users')->with('status', 'Successfully created user!');
     }
 }