To verify your password:
1.
$now_password = Input::get('now_password'); $user = DB::table('users')->where('name', Auth::user()->name)->first(); if(Hash::check($now_password, $user->password)){
2.
$now_password = Input::get('now_password'); if(Hash::check($now_password, Auth::user()->password)){
To check if they match, and if the new password is different from the old.
$rules = array( 'now_password' => 'required|min:8', 'password' => 'required|min:8|confirmed|different:now_password', 'password_confirmation' => 'required|min:8', );
And edit your form (or enter your names):
{{ Form::label('now_password', 'Old Password') }} {{ Form::password('now_password')}} {{ Form::label('password', 'New Password') }} {{ Form::password('password')}} {{ Form::label('password_confirmation', 'Confrim New Password') }} {{ Form::password('password_confirmation')}}
Update
Good, therefore you do not want to edit only passwords.
Change your rules:
$rules = array( 'now_password' => 'required|min:5', 'password' => 'min:5|confirmed|different:now_password', 'password_confirmation' => 'required_with:password|min:5' );
I think a current password should be required every time it is changed. Other imo inputs are not required because you do not know what data the user wants to edit.
You should also add something like:
'username' => alpha_num|unique:users,username
etc. (for more details see http://laravel.com/docs/4.2/validation#available-validation-rules )
If the validator passes, you should check which user wants to change (which inputs are not empty). Sort of:
if(!empty(Input::get('firstname'))){ $user->firstname = Input::get('firstname'); }
etc. with each entry.