logs->find_by_id( $id ); if ( null === $entry ) { throw new DomainException( 'notification_log.not_found', 'Notification log entry not found.' ); } if ( NotificationStatus::Failed !== $entry->status() ) { throw new DomainException( 'notification_log.not_retryable', 'Only failed notifications can be retried.' ); } $this->dispatcher->process_log( $id ); return [ 'ok' => true ]; } }