public function home()
 {
     Artificer::assetManager()->add(['bootstrap-cdn']);
     return view('artificer::install', ['steps' => [['title' => 'Prepare extensions', 'icon' => 'fa fa-plug', 'actions' => ['Will create the given migrations table<br>
                     <span class="label label-default">' . config('admin.migrations') . '</span><small> @ config(\'admin.migrations\')</small>', 'Will setup the given extension driver<br>
                     <span class="label label-default">' . config('admin.extension_driver') . '</span><small> @ config(\'admin.extension_driver\')</small>']], ['title' => 'Install core extensions', 'icon' => 'fa fa-download', 'actions' => ['Will install the core extensions needed to work<br>' . implode('', array_map(function ($extension) {
         return '<span class="label label-default">' . $extension . '</span>';
     }, Artificer::getCoreExtensions()))]], ['title' => 'Create access', 'icon' => 'fa fa-user-plus', 'actions' => ['Will create an admin account<br>
                     <small>Username</small>: <span class="label label-default">artificer</span> <small>Password</small>: <span class="label label-default">artificer</span>']]]]);
 }
 /**
  * Bootstrap the application events.
  *
  * @return void
  */
 public function boot()
 {
     if (!$this->isBootable) {
         return;
     }
     $this->addPublishableFiles();
     // Wait until app is ready for config to be published
     if (!$this->isPublished()) {
         return;
     }
     $this->addMiddleware();
     $this->providers(config('admin.providers'));
     $this->aliases(config('admin.aliases'));
     $this->commands(config('admin.commands'));
     Artificer::assetManager()->add(config('admin.assets', []));
     $this->loadViewsFrom(__DIR__ . '/../resources/views/', 'artificer');
     if (InstallServiceProvider::isExtensionDriverReady()) {
         Artificer::pluginManager()->boot();
         Artificer::widgetManager()->boot();
     }
     if (!$this->app->routesAreCached()) {
         require_once __DIR__ . '/../routes/admin.php';
     }
 }
 /**
  * @param $instance AbstractExtension
  */
 protected function addAssets($instance)
 {
     $assetsManager = Artificer::assetManager();
     $instance->assets($assetsManager);
 }
 protected function applyWidgets()
 {
     foreach ($this->widgets as $widget) {
         $widget = Artificer::widgetManager()->get($widget);
         $widget->assets(Artificer::assetManager());
         return $widget->field($this);
     }
     return $this;
 }