/**
  * @param $extension
  * @param $action
  * @return \Illuminate\Http\RedirectResponse
  * @throws \Exception
  */
 protected function doAction($extension, $action)
 {
     $extension = $this->getExtensionSlug($extension);
     if ($action == self::ACTION_UNINSTALL && Artificer::isCoreExtension($extension->namespace)) {
         throw new \Exception('Core extensions can not be uninstalled');
     }
     $this->getManager()->installer()->{$action}($extension->namespace);
     return \Redirect::back();
 }
 /**
  * @param bool $outputCore
  */
 public function outputRoutes($outputCore = false)
 {
     $installedPlugins = $this->installer()->getInstalled();
     foreach ($installedPlugins as $extension) {
         $extensionInstance = $this->get($extension);
         $isCoreExtension = Artificer::isCoreExtension($extension);
         if ($isCoreExtension && $outputCore) {
             $extensionInstance->getRoutes();
         }
         if (!$isCoreExtension && !$outputCore) {
             \Route::group(['prefix' => $extensionInstance->getSlug()], function () use($extensionInstance) {
                 $extensionInstance->getRoutes();
             });
         }
     }
 }