private function notify() : Promise
{
$promises = [];
foreach ($this->observers as $observer) {
$promises[] = $observer->update($this);
}
return any($promises)->when(function ($error, $result) {
// $error is always empty because an any() combinator promise never fails.
// Instead we check the error array at index zero in the two-item any() $result
// and log as needed.
list($observerErrors) = $result;
foreach ($observerErrors as $error) {
$this->logger->error($error);
}
});
}