protected function filterValueWithGlobalChain($value, $key, $data)
    {
        if (is_array($value)) {
            $data[$key] = $this->filterArrayWithGlobalChain($value);
            return $data;
        }

        $filterResult = $this->globalChain->filter(true, $value, $data);
        if ($filterResult->isNotEmpty()) {
            $data[$key] = $filterResult->getFilteredValue();
        } else {
            unset($data[$key]);
        }
        return $data;
    }