public function setDepth()
{
$self = $this;
$this->getConnection()->transaction(function () use($self) {
$self->reload();
$level = $self->getLevel();
$self->newNestedSetQuery()->where($self->getKeyName(), '=', $self->getKey())->update([$self->getDepthColumnName() => $level]);
$self->setAttribute($self->getDepthColumnName(), $level);
});
return $this;
}