public function update(Request $request, $id)
{
$current_roles = array('3', '2', '1');
$rules = array('name' => 'required', 'email' => 'required|email');
$validator = $this->validator($request->all(), $rules);
if ($validator->fails()) {
$this->throwValidationException($request, $validator);
} else {
$user = User::find($id);
$user->name = $request->input('name');
$user->email = $request->input('email');
$user->profile->bio = $request->input('bio');
$input = Input::only('role_id');
$user->removeRole($current_roles);
$user->assignRole($input);
$profile = Profile::find($id);
$profileInputs = Input::only('location', 'bio', 'twitter_username', 'github_username');
// CHECK IF PROFILE EXISTS THEN CREATE OR SAVE PROFILE
if ($user->profile == null) {
$profile = new Profile();
$profile->fill($profileInputs);
$user->profile()->save($profile);
} else {
$user->profile->fill($profileInputs)->save();
}
// SAVE USER CORE SETTINGS
$user->save();
return redirect('users/' . $user->id . '/edit')->with('status', 'Successfully updated the user!');
}
}