/**
  * Update the specified resource in storage.
  *
  * @param  Request  $request
  * @param  int  $id
  * @return Response
  */
 public function update($id, Request $request)
 {
     $company = Companies::findOrFail($id);
     if (isset($request['add_new']) && $request['add_new']) {
         $mediaData = $this->mediaValidator($request);
         $company->mediaContacts()->save(new \App\Models\MediaContacts($mediaData));
         return Redirect::back()->withInput($request->except(["Full_Name_Media_Contact", "Media_contact_Email", "Media_Contact_Phone"]));
     } else {
         if (isset($request['attach_file']) && $request['attach_file']) {
             $attachmentFields = $this->attachFileValidator($request);
             $company->attachments()->save(new \App\Models\Attachments($attachmentFields));
             return Redirect::back()->withInput($request->except(["attached_file"]));
         }
     }
     $address = $this->addressValidator($request);
     $phone = $this->phoneValidator($request);
     if ($company->headquaters()->get()->count()) {
         Addresses::findOrNew($company->headquaters()->first()->AddressId)->fill($address)->save();
     } else {
         $addressModel = Addresses::create($address);
     }
     if ($company->headquaters()->get()->count()) {
         Phones::findOrNew($company->headquaters()->first()->PhoneId)->fill($phone)->save();
     } else {
         $phoneModel = Phones::create($phone);
     }
     if (!$company->headquaters()->count()) {
         $company->headquaters()->save(new \App\Models\HeadquartersInformation(['PhoneId' => $phoneModel->PhoneId, 'AddressId' => $addressModel->AddressId]));
     }
     $companyFields = $this->companyValidator($request);
     $company->fill($companyFields)->save();
     return redirect(route('admin.companies.index'))->with('flash', 'The Company was updated');
 }