request->getJSON(true) ?: $this->request->getPost(); $name = (string) ($payload['name'] ?? ''); if (! in_array($name, \App\Libraries\Analytics::EVENTS, true)) { return response()->setStatusCode(422)->setJSON(['ok' => false]); } service('analytics')->track($name, [ 'tool' => mb_substr((string) ($payload['tool'] ?? ''), 0, 120), 'format' => isset($payload['format']) ? (string) $payload['format'] : null, 'value' => (int) ($payload['value'] ?? 0), 'meta' => is_array($payload['meta'] ?? null) ? array_slice($payload['meta'], 0, 5) : [], ]); return response()->setJSON(['ok' => true]); } }