protected function createSubAggregate($entity, string $relation): self
    {
        // If root isn't defined, then this is the Aggregate Root
        $root = is_null($this->root) ? $this : $this->root;

        return new self($entity, $this, $relation, $root);
    }