findSourceCart($purchase); if ($sourceCart === null || $sourceCart->trashed()) { return; } $sourceCart->update([ 'status' => 'converted', 'guest_token' => null, ]); $sourceCart->delete(); } private function findSourceCart(Purchase $purchase): ?Cart { if ($purchase->cart_id === null) { return null; } /** @var Cart|null */ return Cart::withTrashed() ->whereKey($purchase->cart_id) ->lockForUpdate() ->first(); } }