minute = $minute; $this->host = $host; $this->onQueue('host-cost'); } /** * Execute the job. * * @return void */ public function handle(): void { if (! $this->host) { $host = new Host(); if (app()->environment() != 'local') { $host = $host->where('minute_at', $this->minute); } $host->whereIn('status', ['running', 'stopped'])->whereNull('billing_cycle')->with('user')->chunk(500, function ($hosts) { foreach ($hosts as $host) { dispatch(new self($this->minute, $host)); } }); } $this->host?->cost($this->host->getPrice()); } }