public async Task <IActionResult> AdvanceOrderAsync([FromRoute] int orderNumber, [FromQuery] OrderTrigger trigger) { try { Order order = await findOrderByNumberPort.FindByNumber(orderNumber); await stateMachine.BuildFor(order).FireAsync(trigger); return(Ok(order.Number)); } catch (OrderNotFoundException ex) { logger.LogError(ex, ex.Message); return(NotFound(orderNumber)); } catch (Exception ex) { logger.LogError(ex, ex.Message); return(StatusCode((int)HttpStatusCode.InternalServerError)); } }