/**
  * @param Campaign $campaign
  * @param CampaignWidget $widget
  * @param Request $request
  * @return mixed
  */
 public function update(Campaign $campaign, CampaignWidget $widget, Request $request)
 {
     if ($campaign->widgets->contains($widget->id)) {
         $widget->fill(translation_input($request));
         $widget->save();
         $widget->load(['resource', 'otherResource']);
         //this is a hack to load the extra resources onto the widget.
         $widgets = new CampaignWidgetCollection([$widget]);
         $widgets = $widgets->toArray();
         return array_pop($widgets);
     }
 }