public function condition($callback) : self
    {
        if ($this->inCondition) {
            throw new LogicException('Cannot nest rule conditions');
        }

        // Order is important here
        $this->createRule(ConditionalRule::class, [$callback]);
        $this->inCondition = true;

        return $this;
    }