newOrderId(), reference: $this->newReference(), basket: $basket, pickupTimeSlot: $pickupTimeSlot, shopper: $shopper, shop: $shop ); } private function newOrderId(): OrderId { return new OrderId(Uuid::uuid7()); } private function newReference(): OrderReference { return new OrderReference(Uuid::uuid7()); } public function cancelOrder(OrderId $id): void { $order = $this->orderRepository->find($id); if (! $order) { throw new \DomainException('Order not found'); } $order->cancel(); $this->orderRepository->persist($order); } }