public function store(Request $request)
{
try {
$validator = Validator::make($request->all(),
[
'name' => 'required|max:100|min:4',
'username' => 'required|alpha_dash|max:32|min:4|unique:users',
'email' => 'required|email|unique:users',
'password' => 'required|max:32|min:8|same:confirm-password',
'avatar' => 'mimes:jpg,jpeg,png,gif,bmp',
]
);
if ($validator->fails()) {
return redirect()->back()->withErrors($validator->errors()->all());
}
$input = $request->all();
$input['password'] = Hash::make($input['password']);
$user = new User();
$user->name = $request->name;
$user->username = $request->username;
$user->email = $request->email;
$user->telephone = $request->telephone;
$user->gender = $request->gender;
$user->password = Hash::make($request->password);
if ($request->hasFile('avatar')) {
$file = $request->file('avatar');
$filename = str_slug($user->username) . '.' . $file->getClientOriginalExtension();
$user->avatar = $filename;
File::makeDirectory(public_path('uploads/users'), 0777, true, true);
Image::make($file->getRealPath())->resize(300, 300)->save(public_path('uploads/users/' . $filename), 100);
}
$user->save();
return redirect()->route('users.list')->withSuccess(trans('dashboard.alerts.successmessage'));
} catch (\Exception $e) {
return redirect()->back()->withError(trans('dashboard.alerts.errormessage'));
}
    }