KarlisJ I would really like to get away from serializing the closures too.
It produces a lot of problems and issues that we had to deal with (unable to serialize closure ...).
And I also ran into a situation where the "Question" class name was pretty misleading - because right now you can also just use it to send a text with two buttons outside of a conversation.
Right now we also accept callables instead of closures, so you can do:
$this->ask('question', [$this, 'answerMethod']);
I'd still want to support closures for regular hears methods though, just not inside conversations. The whole concept was a bit misleading in hindsight.
So yeah - even though this will be a pretty big breaking change, I think it'll be worth it to be able to create better conversation classes.
Edit:
Thought about this some more.
At the end we would have conversation classes that only hold the "flow" of the conversation, while the question classes control the specific logic of each question - correct?
I don't quite get how we want to control the flow though.