I have recently configured my Laravel website on AWS CDN and have encountered some issues. I am quite new here, kindly help..
My Laravel Website uses below cookies to identify the session. csrf_cookie_name, ci_session & site_lang
So, I have added these cookies and headers in my custom cookie rule under Behavior setting as shown below:

Now, the entire website seems fine except some functionalities within dashboard post login. I see that recent changes does not reflect, cart item number don't update, recent transactions don't show, any live chat message dont appear and some similar issue. Post I logout and re-login, I can see all updates and then again new changes dont reflect.
I am suspecting that it is possibly happening due to caching of session IDs or session cookies. Can you please help here and let me know if this is the case.
Also, the process to just forward the above cookies without caching to the Viewer/User.
When I face this issue, every time I invalidate/purge the cache and for that moment, all new updates reflect on the dashboard, but again it stops reflecting the new changes unless I re-login or clear all cache.
To clear all cache, I create invalidation with /*



You are caching your requests for dynamic content (ex. live chat).
And as you added the session id to the cache key (ci_session), you are caching these requests per user session.
Hence when you log in again you get a new session id, the first request is a cache miss and get fresh content, not the next ones.
The issue is that you have only one behaviour associated to all traffic (*), static and dynamic. This behaviour is configured to cache requests and add a number of headers and cookies to the cache key.
The origin request policy is configured to forward all cookies to the origin when there's a cache miss so no need to add ci_session to the caching policy.
And you need to differentiate requests for static and dynamic content.
You have 2 alternatives.
1/ Use different paths.
One for static content (ex. http://mywebsite/static).
One for dynamic content (ex. http://mywebsite/api).
Then create a distinct behaviour for each path.
Cache everything for the first one, use a standard caching policy.
Cache nothing for the second one.
2/ Use different domains.
You push your static content to an S3 bucket.
You create a CloudFront distribution on top of this bucket and cache everything, you will get a URL like http://12345.cloudfront.net.
You configure your application so when you connect to http://mywebsite it fetches static content from http://12345.cloudfront.net.
I'm not familiar with Laravel but it seems this thread is highlighting a solution: Laravel and AWS Cloudfront.
Hope it helps.