/** * @param Command|GetTrackCommand $command * * @return mixed * @throws TrackNotFoundException */ public function handle(Command $command) { $track = $this->trackRepository->find($command->trackId()); if (!$track) { throw new TrackNotFoundException($command->trackId()); } return $this->getTrackCommandResultDataTransformer->transform(GetTrackCommandResult::instance($track)); }