/**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(Request $request)
 {
     $data = $request->all();
     $clubs = json_decode($data['clubs'], true);
     $country = Country::firstOrNew(['name' => $data['country']]);
     $country->save();
     $competition = Competition::firstOrNew(['name' => $data['name'], 'country_id' => $country->id, 'type' => $data['type']]);
     if ($country->competitions()->where(['id' => $competition->id])->get()->count() == 0) {
         $country->competitions()->save($competition);
     }
     Auth::user()->competitions()->save($competition);
     $season = Season::firstOrNew(['name' => $data['season']]);
     $season->save();
     if ($season->competitions()->where(['id' => $competition->id])->get()->count() == 0) {
         $season->competitions()->attach($competition->id);
     }
     $competition->clubsByName()->wherePivot('season_id', '=', $season->id)->detach();
     foreach ($clubs as $club) {
         $competition->storeClub($club, $country, $season);
     }
     $num = count($clubs);
     if ($num % 2 != 0) {
         $clubs[$num++] = $competition->storeClub(['name' => '//no-name', 'location' => '//no-loc', 'num' => $num], $country, $season);
     }
     $settings = Setting::firstOrNew(['competition_id' => $competition->id, 'season_id' => $season->id]);
     $settings->save();
     return $competition->storeCompetition($season, $num);
 }