/** * @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); } }