diff --git a/core/modules/media/src/Entity/Media.php b/core/modules/media/src/Entity/Media.php
index 8584041..5c68552 100644
--- a/core/modules/media/src/Entity/Media.php
+++ b/core/modules/media/src/Entity/Media.php
@@ -423,6 +423,16 @@ public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
       ])
       ->setDisplayConfigurable('view', TRUE);
 
+    $fields['status']
+      ->setDisplayOptions('form', [
+        'type' => 'boolean_checkbox',
+        'settings' => [
+          'display_label' => TRUE,
+        ],
+        'weight' => 120,
+      ])
+      ->setDisplayConfigurable('form', TRUE);
+
     $fields['created'] = BaseFieldDefinition::create('created')
       ->setLabel(t('Authored on'))
       ->setDescription(t('The time the media item was created.'))
diff --git a/core/modules/media/src/MediaForm.php b/core/modules/media/src/MediaForm.php
index 1e91e9f..3766950 100644
--- a/core/modules/media/src/MediaForm.php
+++ b/core/modules/media/src/MediaForm.php
@@ -49,66 +49,10 @@ public function form(array $form, FormStateInterface $form_state) {
 
     $form['#attached']['library'][] = 'media/media_form';
 
-    $form['#entity_builders']['update_status'] = [$this, 'updateStatus'];
-
     return $form;
   }
 
   /**
-   * {@inheritdoc}
-   */
-  protected function actions(array $form, FormStateInterface $form_state) {
-    $element = parent::actions($form, $form_state);
-    $media = $this->entity;
-
-    // Add a "Publish" button.
-    $element['publish'] = $element['submit'];
-    // If the "Publish" button is clicked, we want to update the status to
-    // "published".
-    $element['publish']['#published_status'] = TRUE;
-    $element['publish']['#dropbutton'] = 'save';
-    if ($media->isNew()) {
-      $element['publish']['#value'] = $this->t('Save and publish');
-    }
-    else {
-      $element['publish']['#value'] = $media->isPublished() ? $this->t('Save and keep published') : $this->t('Save and publish');
-    }
-    $element['publish']['#weight'] = 0;
-
-    // Add a "Unpublish" button.
-    $element['unpublish'] = $element['submit'];
-    // If the "Unpublish" button is clicked, we want to update the status to
-    // "unpublished".
-    $element['unpublish']['#published_status'] = FALSE;
-    $element['unpublish']['#dropbutton'] = 'save';
-    if ($media->isNew()) {
-      $element['unpublish']['#value'] = $this->t('Save as unpublished');
-    }
-    else {
-      $element['unpublish']['#value'] = !$media->isPublished() ? $this->t('Save and keep unpublished') : $this->t('Save and unpublish');
-    }
-    $element['unpublish']['#weight'] = 10;
-
-    // If already published, the 'publish' button is primary.
-    if ($media->isPublished()) {
-      $element['publish']['#button_type'] = 'primary';
-    }
-    // Otherwise, the 'unpublish' button is primary and should come first.
-    else {
-      $element['unpublish']['#button_type'] = 'primary';
-      $element['unpublish']['#weight'] = -10;
-    }
-
-    // Remove the "Save" button.
-    $element['submit']['#access'] = FALSE;
-
-    $element['delete']['#access'] = $media->access('delete');
-    $element['delete']['#weight'] = 100;
-
-    return $element;
-  }
-
-  /**
    * Entity builder updating the media status with the submitted value.
    *
    * @param string $entity_type_id
diff --git a/core/modules/media/tests/src/Functional/MediaUiFunctionalTest.php b/core/modules/media/tests/src/Functional/MediaUiFunctionalTest.php
index 883f27e..c2e9f40 100644
--- a/core/modules/media/tests/src/Functional/MediaUiFunctionalTest.php
+++ b/core/modules/media/tests/src/Functional/MediaUiFunctionalTest.php
@@ -53,7 +53,7 @@ public function testMediaWithOnlyOneMediaType() {
     $page->fillField('name[0][value]', $media_name);
     $revision_log_message = $this->randomString();
     $page->fillField('revision_log_message[0][value]', $revision_log_message);
-    $page->pressButton('Save and publish');
+    $page->pressButton('Save');
     $media_id = $this->container->get('entity.query')->get('media')->execute();
     $media_id = reset($media_id);
     /** @var \Drupal\media\MediaInterface $media */
@@ -72,7 +72,7 @@ public function testMediaWithOnlyOneMediaType() {
     $assert_session->checkboxNotChecked('edit-revision');
     $media_name = $this->randomMachineName();
     $page->fillField('name[0][value]', $media_name2);
-    $page->pressButton('Save and keep published');
+    $page->pressButton('Save');
     /** @var \Drupal\media\MediaInterface $media */
     $media = $this->container->get('entity_type.manager')
       ->getStorage('media')
@@ -103,7 +103,7 @@ public function testMediaWithOnlyOneMediaType() {
     $assert_session->checkboxChecked('edit-revision');
     $page->fillField('name[0][value]', $media_name);
     $page->fillField('revision_log_message[0][value]', $revision_log_message);
-    $page->pressButton('Save and keep published');
+    $page->pressButton('Save');
     $assert_session->titleEquals($media_name . ' | Drupal');
     /** @var \Drupal\media\MediaInterface $media */
     $media = $this->container->get('entity_type.manager')
@@ -112,6 +112,16 @@ public function testMediaWithOnlyOneMediaType() {
     $this->assertEquals($media->getRevisionLogMessage(), $revision_log_message);
     $this->assertNotEquals($previous_revision_id, $media->getRevisionId());
 
+    // Test the status checkbox.
+    $this->drupalGet('media/' . $media_id . '/edit');
+    $page->uncheckField('status[value]');
+    $page->pressButton('Save');
+    /** @var \Drupal\media\MediaInterface $media */
+    $media = $this->container->get('entity_type.manager')
+      ->getStorage('media')
+      ->loadUnchanged($media_id);
+    $this->assertFalse($media->isPublished());
+
     // Tests media delete form.
     $this->drupalGet('media/' . $media_id . '/edit');
     $page->clickLink('Delete');
