Inheritance: extends App\Http\Requests\Request
 /**
  * Store a newly created resource in storage.
  *
  * @param  \App\Http\Requests\user\StoreUserRequest $request
  * @return \Illuminate\Http\Response
  */
 public function store(StoreUserRequest $request)
 {
     // getting all the inputs from input field
     $name = $request->input('name');
     $email = $request->input('email');
     $password = $request->input('password');
     // generating 60 characters activation code
     $activation_code = str_random(60);
     // creating the user
     $user = User::create(array('name' => $name, 'email' => $email, 'password' => Hash::make($password), 'activation_code' => $activation_code, 'activated' => 0));
     $data = array('link' => url('user/activate', [$activation_code]), 'name' => $name);
     // sending mail to the user whose account has been created
     Mail::send('emails.activation_code', $data, function ($message) use($user) {
         $message->to($user->email, $user->name)->subject('Activate Your Account !');
     });
     session()->flash('flash_message', 'Your Account Has Been Created ! We have sent you an activation code via mail.');
     // showing the message regarding account activation
     return redirect()->route('user.create');
 }