@Override
  public void execute(AdminCommandContext context) {
    ProgressStatus ps = context.getProgressStatus();
    // Do some before logic
    ps.progress("Preparing");
    for (int i = 0; i < 10; i++) {
      doSomeLogic();
      ps.progress(1);
    }

    // Execute other command
    final CommandRunner.CommandInvocation commandInvocation =
        commandRunner.getCommandInvocation(
            "progress-simple",
            context.getActionReport().addSubActionsReport(),
            context.getSubject());
    commandInvocation
        // .subject(context.getSubject())
        .progressStatusChild(
            ps.createChild(
                "subcommand",
                20)) // Number 20 is little bit tricky. Please see javadoc of ProgressStatus
        .execute();

    // Do some after logic
    ps.progress("Finishing outer command");
    for (int i = 0; i < 10; i++) {
      doSomeLogic();
      ps.progress(1);
    }
    ps.complete("Finished outer command");
  }