protected function isPaginated(array $json)
    {
        if (!array_key_exists('links', $json) || !array_key_exists('meta', $json)) {
            return false;
        }
        if (is_array($json['links'])
            && array_key_exists('self', $json['links'])
            && array_key_exists('first', $json['links'])
            && array_key_exists('last', $json['links'])
            && isset($json['meta']['pagination'])
            && is_array($json['meta']['pagination'])
            && array_key_exists('total', $json['meta']['pagination'])
            && array_key_exists('count', $json['meta']['pagination'])
            && array_key_exists('per_page', $json['meta']['pagination'])
            && array_key_exists('current_page', $json['meta']['pagination'])
            && array_key_exists('total_pages', $json['meta']['pagination'])
        ) {
            return true;
        }
        return false;
    }