protected function instantiateWidget(array $params = [])
{
WidgetId::increment();
$this->widgetName = $this->parseFullWidgetNameFromString(array_shift($params));
$this->widgetFullParams = $params;
$this->widgetConfig = (array) array_shift($params);
$this->widgetParams = $params;
$rootNamespace = $this->app->config('laravel-widgets.default_namespace', $this->app->getNamespace() . 'Widgets');
$fqcn = $rootNamespace . '\\' . $this->widgetName;
$widgetClass = class_exists($fqcn) ? $fqcn : $this->widgetName;
if (!is_subclass_of($widgetClass, 'Arrilot\\Widgets\\AbstractWidget')) {
throw new InvalidWidgetClassException('Class "' . $widgetClass . '" must extend "Arrilot\\Widgets\\AbstractWidget" class');
}
$this->widget = new $widgetClass($this->widgetConfig);
}