/**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     $faker = Faker\Factory::create();
     User::create(['first_name' => 'Maciej', 'last_name' => 'Sularz', 'phone_number' => '07586750240', 'email' => '*****@*****.**', 'password' => '$2y$10$Rsh78/ok4aIcIOQKJImFk.8XWhkVDy8/wG/wmI768eNdjg8Rjk7da', 'date_of_birth' => '1987-07-24', 'club_id' => 3, 'role_id' => 1]);
     User::create(['first_name' => 'Owen', 'last_name' => 'Mallia', 'phone_number' => '07891498023', 'email' => '*****@*****.**', 'password' => '$2y$10$zMXsEEyhcMHvGSX.Biz.nOcF94XgGVf3CY7vanEkLYeAOrjwbdr8G', 'club_id' => 3, 'role_id' => 1]);
     User::create(['first_name' => 'Rob', 'last_name' => 'Miller', 'phone_number' => '07879681414', 'email' => '*****@*****.**', 'password' => '$2y$10$/BEWocGuz8crDuI4uHwhX.Dr1b9WaDPTt3OVg.19mwECSPtlr5SOa', 'club_id' => 3, 'role_id' => 1]);
     foreach (range(4, 30) as $index) {
         User::create(['first_name' => $faker->firstName(), 'last_name' => $faker->lastName(), 'email' => $faker->email(), 'phone_number' => "07586750249", 'password' => bcrypt('password'), 'date_of_birth' => $faker->date(), 'club_id' => $faker->numberBetween(1, 5), 'role_id' => $faker->numberBetween(3, 5)]);
     }
 }
 /**
  * Store a newly created resource in storage.
  *
  * @param UserRequest|Request $request
  * @return \Illuminate\Http\Response
  */
 public function store(UserRequest $request)
 {
     // Get only User related input
     $userFields = Input::only('first_name', 'last_name', 'phone_number', 'email', 'password', 'date_of_birth');
     // Hash the password
     if (!empty($userFields['password'])) {
         $userFields['password'] = bcrypt($request['password']);
     }
     // Get only Address
     $addressFields = Input::only('address')['address'];
     // If any exceptions are thrown any DB operations
     // will be automatically rolled back.
     DB::transaction(function () use($request, $userFields, $addressFields) {
         // Create new User
         $user = User::create($userFields);
         // Create new Address if fields not empty
         if (!empty($addressFields)) {
             $user->address()->create($addressFields);
         }
         // Create new Avatar
         if (Input::hasFile('avatar') && Input::file('avatar')->isValid()) {
             Avatar::make($user, $request);
         }
         // Assign user to a Local Club
         $user->club()->associate(Club::find($request['club_id']));
         // Assign User to a Role
         $user->role()->associate(Role::find($request['role_id']));
         // Assign User to categories
         if (is_array($request['categories'])) {
             $user->categories()->sync($request['categories']);
         }
         // Save User
         $user->save();
     });
     flash()->success('Success!', "New user has been created!");
     return redirect(route('admin.users.index'));
 }