final public function whereAll(callable $conditionCallback)
    {
        $definition = new SpecificationDefinition($this->class, $this->memberExpressionParser);
        $conditionCallback($definition);

        if ($definition->hasCondition()) {
            $this->append($definition->getCondition());
        }

        return $this;
    }