public function publishRecursive()
    {
        // Create a new changeset for this item and publish it
        $changeset = ChangeSet::create();
        $changeset->IsInferred = true;
        $changeset->Name = _t(
            __CLASS__ . '.INFERRED_TITLE',
            "Generated by publish of '{title}' at {created}",
            [
                'title' => $this->owner->Title,
                'created' => DBDatetime::now()->Nice()
            ]
        );
        $changeset->write();
        $changeset->addObject($this->owner);
        return $changeset->publish(true);
    }