I assume $this->listErrors is an array?
$errors = $this->record->substances->map(function($substance) {
if ($substance->listings->isNotEmpty()) {
foreach ($substance->listings as $listing) {
if ($listing->sublist_id === $this->listId) {
return $substanceń
}
}
}
})->filter()->values();
$this->listErrors = array_merge($this->listErrors, $errors);