alias = $alias; $this->company_id = (int) $company_id; $this->locale = $locale ?: company($company_id)->locale ?: config('setting.fallback.default.locale'); } /** * Execute the job. * * @return string */ public function handle() { $this->authorize(); $command = "module:install {$this->alias} {$this->company_id} {$this->locale}"; $result = Console::run($command); if ($result !== true) { $message = !empty($result) ? $result : trans('modules.errors.finish', ['module' => $this->alias]); throw new \Exception($message); } } /** * Determine if this action is applicable. */ public function authorize(): void { if (! $this->moduleExists($this->alias)) { throw new \Exception("Module [{$this->alias}] not found."); } if (! in_array($this->locale, config('language.allowed'))) { throw new \Exception("Unknown locale: {$this->locale}"); } } }