registry = $registry; } public function loadSubject(string $key, array $args): Subject { $subject = $this->registry->getSubject($key); if (!$subject) { throw Exceptions::subjectNotFound($key); } try { $subject->load($args); } catch (Throwable $e) { throw Exceptions::subjectLoadFailed($key, $args); } return $subject; } }