I have a livewire component that has a bunch of props that are also url query strings, and I want to store the url in session whenever user changes them(on render), but when I use URL::full() I get livewire's update url instead of actual final url.
Livewire’s AJAX behavior means url()->current() will point to /livewire/message/... instead of your real page URL. A simple fix is to capture it once in mount()—like public $currentUrl; public function mount() { $this->currentUrl = url()->current(); }—and then use $currentUrl later.
If you want both current and previous URLs, there's a neat package called ralphjsmit/livewire-urls. It adds middleware that tracks these for you and gives you helper methods like Url::current() and Url::previous() that actually reflect the real page URLs.
Either way, you're covered—use either the mount() trick for a quick win or go with the package for full URL tracking.