Content Moderation: how to make a button to move between states?
I think you should be able to do something like this. (But I did not test).

The first code block adds an additional submit button and gives it a custom submit handler. (Button specific submit callbacks should run before form submit callbacks.)

function mymodule_form_TYPE_form_alter(&amp;$form, FormStateInterface $form_state, $form_id) {

  // Add second submit button (Also check if user can see this).
  $form['actions']['submit_publish'] = [
    '#type' =&gt; 'submit',
    '#value' =&gt; t('Submit for approval'),
    '#submit' =&gt; ['mymodule_submit_callback'],
  ];
}


And the submit callback, which simply sets the new value for the moderation state. 

/**
 * Submit callback to submit for approval
 */
function mymodule_submit_callback(array &amp;$form, FormStateInterface &amp;$form_state) {
  $form_state-&gt;setValue('moderation_state', 'MODERATION STATE ID');
}