restoreHandlerProvider = $restoreHandlerProvider; } public function restoreChanges(LogEntryInterface $logEntry): bool { $groupedLogDetails = $this->prepareLogDetails($logEntry); foreach ($groupedLogDetails as $modelName => $logDetails) { $this->restoreHandlerProvider->get($modelName)->restore($logEntry, $logDetails); } return true; } private function prepareLogDetails(LogEntryInterface $logEntry): array { $groupedLogDetails = []; /** @var LogDetailInterface $logDetail */ foreach ($logEntry->getLogDetails() as $logDetail) { $groupedLogDetails[$logDetail->getModel()][] = $logDetail; } return $groupedLogDetails; } }