validate([ 'content' => ['required', 'string', 'min:1', 'max:10000'], ]); $this->comments->reply($request->user(), $module, $commentId, (string) $payload['content']); return response()->json(['ok' => true]); } public function moderate(Request $request, string $module, int $commentId): JsonResponse { $this->comments->moderate($request->user(), $module, $commentId); return response()->json(['ok' => true]); } public function report(Request $request, string $module, int $commentId): JsonResponse { $payload = $request->validate([ 'reason' => ['required', 'string', 'max:120'], 'details' => ['nullable', 'string', 'max:4000'], ]); return response()->json([ 'ok' => true, 'report' => $this->comments->report( $request->user(), $module, $commentId, (string) $payload['reason'], isset($payload['details']) ? (string) $payload['details'] : null, ), ], 201); } }