Help with Cypher query

I'm new to cypher and playing around with the movie data set. I'm trying to return movies, roles and actors all in sorted order. This is what I've got so far:

MATCH (movie:Movie)<-[r1:ACTED_IN|DIRECTED|PRODUCED]-(person:Person) unwind r1.roles as roles with movie, person, roles order by roles return movie, collect(roles), person order by movie.title,

This works in theory except for roles which gets collected back as a string list rather then the relationship which breaks Spring deserialization.

How do I put back the sorted roles list back into r1 or is there a better way to sort that list too?

Check out APOC plugin which has collection/list sort: