public static OrderState.Result CancelOrder(OrderState state) => state.ApplyEvent(new OrderCancelledEvent(state.Id));
public static OrderState.Result AddOrderItem(OrderState state, OrderItemId itemId, ProductId productId, decimal unitPrice, decimal discount) => state.ApplyEvent(new OrderItemAddedEvent(itemId, state.Id, productId, unitPrice, discount));
public static OrderState.Result PayOrder(OrderState state) => state.ApplyEvent(new OrderPaidEvent(state.Id));