public function where(string $key, string $operation, $value)
    {
        if (str_contains($key, '.')) {
            $fullPath            = explode('.', $key);
            $relationPath        = implode('.', array_slice($fullPath, 0, -1));
            $relationKey         = last($fullPath);
            $result              = array_get($this->relations, $relationPath, ['filters' => [], 'sorts' => []]);
            $result['filters'][] = new Condition($relationKey, $operation, $value);
            array_set($this->relations, $relationPath, $result);
        } else {
            $this->filters[] = new Condition($key, $operation, $value);
        }
        return $this;
    }