option('full'); $lastRefresh = Station::max('last_seen_at'); $stationsStale = $lastRefresh === null || Carbon::parse($lastRefresh)->isBefore(today()); try { if ($fullRefresh || $stationsStale) { $this->info('Refreshing station metadata...'); $service->refreshStations(); } $this->info('Polling fuel prices...'); $inserted = $service->pollPrices(); $this->info("Done. $inserted new price record(s) inserted."); PricesUpdatedEvent::dispatch($inserted, $fullRefresh); } catch (Throwable $e) { $this->error("Poll failed: {$e->getMessage()}"); $this->error("In {$e->getFile()}:{$e->getLine()}"); $this->line($e->getTraceAsString()); return self::FAILURE; } return self::SUCCESS; } }