Второй вариант это хорошая попытка, но недостаточно полно реализованная. Писать надо хотя бы так
(function() {
foreach([true] as $condition) {
$condition = ($condition) ? true : false;
while ($condition) {
switch (true) {
case ($this->inComplete(($oldStatus), ($newStatus))):
case ($this->outComplete(($oldStatus), ($newStatus))):
($this->action());
($this->save());
}
break;
}
}
})();
В общем, перед тем как задавать вопрос на тостере, надо сесть и хорошенько сначала самому подумать, каких бессмысленных операторов можно добавить в код, кроме switch.