"Regenerating the token for every request can be done, but can result in usability issues. I think this is the reason why Laravel implements the token per session approach."
But the answer by delmadord may point you in the right direction.
In Exception i think in Kernel.php you have ** VerifyCsrfToken** before StartSession
I think my code is't not work for you.
because in this case, application regenerate token before assign to cookies, but if you use csrf_token() it use token before regenerated.
If you want to use this. you must add token to "_token" by js.
You get TokenMismatchException because application call csrf_token() before $session->regenerateToken();, It use old token match with new token always.
If you want to use csrf_token(), you would to find somewhere to add $session()->regenerateToken(); or Session::regenerateToken();
PS. in my case it work because i use with AngularJS and get token from cookies.