extension = $extension; } /** * Execute the job. * * @param ExtensionManager $extensionManager * @return void */ public function handle(ExtensionManager $extensionManager) { try { Log::info('Job: Deleting PBX extension', [ 'extension' => $this->extension, ]); $response = $extensionManager->deleteExtension($this->extension); $extensionManager->applyChanges(); Log::info('Job: PBX extension deleted successfully', [ 'extension' => $this->extension, ]); } catch (ExtensionException $e) { // If the extension was already removed, treat it as success if (str_contains($e->getMessage(), 'Extension does not exists')) { Log::warning('Job: PBX extension already removed, skipping', [ 'extension' => $this->extension, ]); return; } $this->handleFailure($e); } catch (\Exception $e) { $this->handleFailure($e); } } protected function handleFailure(\Exception $exception) { Log::error('Job: Failed to delete PBX extension', [ 'extension' => $this->extension, 'error' => $exception->getMessage(), 'attempts' => $this->attempts(), ]); throw $exception; } }