storePostTask->run($this->preparePostData($request)); if (!$post) { return false; } $post = $this->getPostTask->byUuid($post->uuid); $this->updateThreadTask->run($request->thread, [ 'posts' => $request->thread->posts + 1, 'lastpost_uuid' => $post->uuid ]); $this->updateForumTask->run($request->thread->forum, [ 'posting_count' => $request->thread->forum->posting_count + 1, 'lastpost_uuid' => $post->uuid ]); return $post->id; } /** * @param Store $request * @return array */ private function preparePostData(Store $request): array { return [ 'created_uuid' => $request->user()->uuid, 'updated_uuid' => $request->user()->uuid, 'thread_uuid' => $request->post('thread_uuid'), 'title' => $request->post('title'), 'content' => $request->post('content'), 'users' => $this->preparePivotData($request, 'users'), 'groups' => $this->preparePivotData($request, 'groups') ]; } }