- $draft->draft = false;
- $draft->revision_count = 1;
- $draft->priority = $this->getNewPriority($draft);
- $this->updateTemplateStatusAndContentFromInput($draft, $input);
- $this->baseRepo->update($draft, $input);
-
- $this->revisionRepo->storeNewForPage($draft, trans('entities.pages_initial_revision'));
- $draft->refresh();
-
- Activity::add(ActivityType::PAGE_CREATE, $draft);
+ return (new DatabaseTransaction(function () use ($draft, $input) {
+ $draft->draft = false;
+ $draft->revision_count = 1;
+ $draft->priority = $this->getNewPriority($draft);
+ $this->updateTemplateStatusAndContentFromInput($draft, $input);
+ $this->baseRepo->update($draft, $input);
+ $draft->rebuildPermissions();
+
+ $summary = trim($input['summary'] ?? '') ?: trans('entities.pages_initial_revision');
+ $this->revisionRepo->storeNewForPage($draft, $summary);
+ $draft->refresh();
+
+ Activity::add(ActivityType::PAGE_CREATE, $draft);
+ $this->baseRepo->sortParent($draft);
+
+ return $draft;
+ }))->run();
+ }