except('_token'); // create new widget $widget = new WidgetModel(); $widget->widget_type_handler = $widgetType->handler; $widget->user_id = \Auth::user()->id; $widget->name = $data['name']; $widget->description = $data['description']; $widget->container_class = $data['containerClass']; $widget->container_id = empty($data['containerId']) ? null : $data['containerId']; $widget->settings = call_user_func([$widgetType->handler, 'save'], $request); // save into database $widget->save(); // fire event with newly created widget Event::fire(new \App\Events\CreateNewWidget($widget)); return $widget; } public function edit(WidgetModel $widget, Request $request) { // update name $widget->name = $request->name; $widget->container_class = $request->containerClass; $widget->container_id = empty($request->containerId) ? null : $request->containerId; $widget->description = $request->description; // try to save this widget $widget->settings = call_user_func([$widget->widget_type_handler, 'save'], $request); // save into database $widget->save(); // fire event with editing widget Event::fire(new \App\Events\EditWidget($widget)); } }