$this->argument('db_host'), 'name' => $this->argument('db_name'), 'user' => $this->argument('db_user'), 'pass' => $this->argument('db_pass'), 'table_prefix' => $this->argument('table_prefix'), ]; $importerSvc = new ImporterService(); $importerSvc->saveCredentials($creds); $stage = 'stage1'; $start = 0; while (true) { try { $importerSvc->run($stage, $start); } catch (ImporterNextRecordSet $e) { Log::info('More records, starting from '.$e->nextOffset); $start = $e->nextOffset; } catch (StageCompleted $e) { $stage = $e->nextStage; $start = 0; Log::info('Stage '.$stage.' completed, moving to '.$e->nextStage); if ($e->nextStage === 'complete') { break; } } } } }