function ($query) { $query->withTrashed(); }, 'requestedItem' => function ($query) { $query->withTrashed(); }, ])->get(); $this->info("Processing {$requests->count()} checkout requests"); $this->withProgressBar($requests, function ($request) { if ($this->shouldForceDelete($request)) { $request->forceDelete(); $this->deletions++; return; } if ($this->shouldSoftDelete($request)) { $request->delete(); $this->deletions++; return; } $this->skips++; }); $this->info("Final deletion count: $this->deletions, and skip count: $this->skips"); return 0; } private function shouldForceDelete(CheckoutRequest $request) { // check if the requestable or user relationship is null return !$request->requestable || !$request->user; } private function shouldSoftDelete(CheckoutRequest $request) { return $request->requestable->trashed() || $request->user->trashed(); } }