Content Moderation: Remove transition from select list programmatically
Thanks @No Sssweat. You put me on the right track.

Since this is the node form, I opted to use hook_form_BASE_FORM_ID_alter(). 

/**
 * Implements hook_form_BASE_FORM_ID_alter() for node_form().
 */
function MY_MODULE_form_node_form_alter(&amp;$form, FormStateInterface $form_state) {
  $roles = \Drupal::currentUser()-&gt;getRoles();
  if (array_intersect(['role_1', 'role_2', 'role_3'], $roles)) {
    $options = isset($form['moderation_state']['widget']) ? $form['moderation_state']['widget'][0]['state']['#options'] : [];
    $options = array_diff_key($options, [
      'request_publish' =&gt; 'Request Publish',
      'request_unpublish' =&gt; 'Request unpublish',
      'request_delete' =&gt; 'Request Delete'
    ]);
    $form['moderation_state']['widget'][0]['state']['#options'] = $options;
  }
}