Good Fortune (2025)

Two people stand outdoors in bright daylight, each wearing large white angel wings. The man on the left has long dark hair and a beard, and is dressed in a light trench coat with one arm extended as if gesturing or explaining something. The woman on the right looks up at him attentively, wearing a pale green patterned robe and a large round pendant. Behind them is a modern cityscape with a tall building and a pale sky.

Aziz Ansari’s directorial debut lands somewhere between ambitious and adequate. Which isn’t the crushing verdict it might sound like, though it’s not exactly a ringing endorsement either. The film wants to say something meaningful about wealth inequality and the gig economy, and it does, sort of, when it’s not getting distracted by the mechanics of being a body-swap comedy featuring an angel who discovers cigarettes.

The setup: Gabriel (Keanu Reeves) is a low-ranking guardian angel assigned to the monumentally tedious task of preventing texting-and-driving accidents. Craving more meaningful work, he decides to teach Arj (Ansari), a struggling gig worker living in his car, that money won’t fix his problems. His solution? Swap Arj’s life with his wealthy employer Jeff (Seth Rogen). Naturally, this goes spectacularly wrong, Gabriel loses his wings, and suddenly he’s stuck being human. Which turns out to be rather more difficult than celestial observation suggested.

Reeves is the film’s secret weapon. Actually, not that secret. His performance as Gabriel transforms what could have been a one-note joke into something unexpectedly affecting. Watching him discover cheeseburgers with the wonder of someone encountering flavour for the first time, then gradually descend into chain-smoking and existential exhaustion, provides the film with its emotional centre. There’s real skill in playing innocence without tipping into idiocy, and Reeves navigates that balance beautifully. The man’s spent decades perfecting his screen persona of genuine decency, and here it pays dividends.

Ansari casts himself as Arj, an aspiring documentarian juggling food delivery, hardware store shifts, and whatever odd jobs come his way. He’s dating Elena (Keke Palmer), who’s trying to unionise their workplace, a detail that signals the film’s political sympathies early on. The depiction of precarious employment rings true enough. Rent being impossible. Three jobs barely covering basics. The daily grind of economic anxiety. Whether a successful comedian and television creator can authentically capture working-class struggle is a fair question. The film doesn’t really interrogate this tension, though perhaps it should have.

The comedy works in patches. Some genuinely clever observations about wealth disparity sit next to more obvious gags, and the film doesn’t always distinguish between its stronger and weaker material. When it commits to absurdity or lets scenes breathe, wit emerges. The pacing moves along briskly, which helps, but I found myself wishing Ansari had picked a lane. Satirical bite or heartfelt sentiment? The film wants both, achieves neither completely, and the uncertainty shows.

Then there’s the ending, which feels rushed. After spending ninety minutes examining how systemic inequality grinds people down, the film pivots toward emotional resolution without really earning it. I understand the impulse. Nobody wants to leave the cinema feeling utterly bleak. But the tonal shift from unflinching critique to hopeful conclusion creates whiplash. You can almost see the studio notes insisting on uplift.

Rogen plays Rogen, which either works for you or it doesn’t. His character’s transformation from oblivious tech bro to suddenly empathetic human being strains credibility, though the film seems vaguely aware of this. Palmer deserves better material than she gets here. She brings depth to an underwritten role, making you wish the script had given her something substantial to work with rather than just reacting to the men’s existential crises.

What frustrates me most, I think, is how close the film gets to something sharper. The engagement with contemporary anxieties about class and labour exploitation is right there. The critique of wealth accumulation and the exploitation it requires exists in the film’s DNA. But everything’s been smoothed over just enough to avoid causing real discomfort. Perhaps that’s commercially necessary. A film this polite in its anger was never going to set anything ablaze.

Credit where it’s due: Ansari clearly cares about these themes. The sincerity bleeds through even when the execution falters. The film reaches for significance, attempts social commentary, and settles for being likeable rather than challenging. That counts for something. Just not quite enough.

Good Fortune occupies peculiar territory. Nothing’s actively wrong with it. Nothing’s particularly memorable either. Competent rather than compelling. Amusing rather than hilarious. Thoughtful rather than thought-provoking. For a film about fortune, it seems content with modest returns instead of gambling on transformation. Three stars feels about right. Not a disaster, not a triumph. Just… there. Which might be the most disappointing outcome of all.

Rating: 3 out of 5.