Зачем if $this->isNewRecord и else?
ведь все равно может быть success
тоже и с !empty($this->parent_id)
По пути появления some condition
if (some condition1 || some condition2 || some conditio3 || some condition4) {
$success = true;
}
Если же эти условия возникают только при тех или иных условиях
$condition1 = ($this->isNewRecord && !empty($this->parent_id) && some condition1);
$condition1 = ($this->isNewRecord && empty($this->parent_id) && some condition2);
$condition1 = (!$this->isNewRecord && !empty($this->parent_id) && some condition3);
$condition1 = (!$this->isNewRecord && empty($this->parent_id) && some condition4);
и тоже что и выше.
было бы яснее, если бы хоть больше объяснили
Если эта функция только сообщает о успехе, делайте return
Дробите на меньше куски, если не избежать такого ветвления.