posts = $posts; } /** * @param EditPost $command * @return \Flarum\Core\Posts\Post * @throws \Flarum\Core\Exceptions\PermissionDeniedException */ public function handle(EditPost $command) { $actor = $command->actor; $data = $command->data; $post = $this->posts->findOrFail($command->postId, $actor); if ($post instanceof CommentPost) { $attributes = array_get($data, 'attributes', []); if (isset($attributes['content'])) { $post->assertCan($actor, 'edit'); $post->revise($attributes['content'], $actor); } if (isset($attributes['isHidden'])) { $post->assertCan($actor, 'edit'); if ($attributes['isHidden']) { $post->hide($actor); } else { $post->restore(); } } } event(new PostWillBeSaved($post, $actor, $data)); $post->save(); $this->dispatchEventsFor($post); return $post; } }