json(['error' => 'Webhook not configured.'], 503); } $signature = (string) $request->header('X-Ladill-Meet-Signature', ''); $body = $request->getContent(); $expected = hash_hmac('sha256', $body, $secret); if ($signature === '' || ! hash_equals($expected, $signature)) { return response()->json(['error' => 'Invalid signature.'], 401); } /** @var array $payload */ $payload = $request->json()->all(); $event = (string) ($payload['event'] ?? ''); if ($event === '') { return response()->json(['error' => 'Missing event.'], 422); } $lifecycle->handle($event, $payload); return response()->json(['ok' => true]); } }