header('Cache-Control', 'No-Store'); /** @var \App\Models\Api\ApiToken|null */ if (\optional($apiToken = app(ApiToken::class))->id) { $apiToken->incrementStat(); } /** @var object $data */ $data = (object)$response->getData(); // If reponse is already a ApiResponse then just return it. This happens if error handler comes into action. if ( isset($data->status) and isset($data->version) and in_array($data->status, [ApiStatus::OK()->value, ApiStatus::KO()->value]) ) { return $response; } /** @var \App\Enums\Legacy\ApiStatus $status */ $status = intval($response->getStatusCode() / 100) == 2 ? ApiStatus::OK() : ApiStatus::KO(); return $response->setData(new ApiResponseResource((object)\optional($data)->data ?? $data, $status)); } }