/**
  * @param Widget $widget
  *
  * @return bool|Widget
  * @throws ValidationException
  */
 public function create(Widget $widget)
 {
     if ($widget->isExists()) {
         return false;
     }
     $data = ['name' => $widget->getName(), 'description' => $widget->getDescription(), 'settings' => $widget->getSettings(), 'type' => $widget->getType()];
     $creator = new WidgetCreator();
     $validator = $creator->validator($data);
     if ($validator->fails()) {
         throw (new ValidationException())->setValidator($validator);
     }
     $widgetModel = $creator->create($data);
     $widget->setId($widgetModel->id);
     return $widget;
 }