You could probably add the From::from (or into) calls manually to convert to anyhow's result type like the ? does. But I'd say the first code sample is quite idiomatic.
The whole point of the ? operator is to make it easier to write error handling in the early-return style, since that's more readable in simple cases like yours. IMO you shouldn't be trying to stuff everything into the Result combinators; I'd actually prefer the first, ?-bubbling code in a code review.