Context matters for such questions, and while you provided a couple of details, the problem statement remains pretty generic which often is not a good fit on Stack Overflow (SO). That also only as explanation why you may dislike the answer as it most likely can't answer how to fix this in every instance, and I guess this is also a reason why others downvoted the question (as they are missing an anchor to actually answer it).
Nevertheless, as such questions may come up and then the best questions we can ask is for what we know currently, some more details here based on the information you've provided to help you dive deeper and find the culprit.
Free your mind though from the stance that this can't be the code or must be X/Y/Z. You can only say that after you have fixed it, before the fix it is only an assumption (and you have also documented why you say so, so that was with context, but remain open for surprises).
First of all it is very essential to know that you actually have the uniqueidentifier 16-byte column type and that the Relational Data Base Management System (RDBMS) is Microsoft SQL Server.
Let's start with some more common places, this is both with bad and good news.
First the diagnostic message:
Malformed UTF-8 characters, possibly incorrectly encoded
From your question alone, there is not much detail where it comes from, we only know the context of UUID and in JSON Text form.
The good/bad news with that is, that by my very rough estimation ca. 50% of all UUID numbers in their binary form yield that message.
The UUID you give as an example in its human readable representation is only one of the many that are not UTF-8 encoded in their binary representation (more about that in a moment):
944CC79D-5980-4587-8A52-000A2F11D7D1
This is also the reason why even without that message you would still see a similar picture in the Laravel/PHP shell for the model's id property.
For that to work in your favour with Laravel 11 IIRC you have to tell Laravel Eloquent that the property is a UUID key per Eloquent Model Conventions. Now you may argue that this can't be because the code on the other system works, then I'd have to tell you that you're barking up the wrong tree unless you want to swap computers with your colleague. If not, read on.
So again good/bad news: Check the requirement for UUID columns in your Eloquent model at hand. There might be a migration missing, you might have forgotten to set it. Double checking might already get things into order, but even if everything is 100% correct in this regard, there are still things that can go wrong according to the error picture you show. I don't know, because the picture is not that clear (to me, as written roughly 50% of all UUIDs have the potential to yield that message).
Despite your Eloquent User Model's id property is not yet in the human readable form as documented by the Eloquent Model Conventions (they use the id property as primary key for articles, not users). Compare:
$article = Article::create(['title' => 'Traveling to Europe']);
$article->id; // "8f8e8478-9035-4d23-b9a7-62f4d2612ce5"
What you should expect on the ID property if you have configured and coded everything correctly, then the string is in the non-binary human readable representation of the 128-bit number distributing the 16 bytes of it in five segments of (lowercase) hexadecimal characters (0-9, a-f):
XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
4 - 2 - 2 - 2 - 6
This is the human readable representation, we can quickly identify it both in the example listing from the Eloquent documentation as well as for the UUID you provided:
8f8e8478-9035-4d23-b9a7-62f4d2612ce5 -- Eloquent Sample
944CC79D-5980-4587-8A52-000A2F11D7D1 -- Your Sample
4 - 2 - 2 - 2 - 6
That Eloquent uses the lowercase letters a-f and you used the uppercase letters A-F is not playing a role here, both forms are common to express hexadecimal numbers, it is only using a different case (lower/upper) for the hexadecimal symbols. I'll continue therefore with your example after stressing the point that your Laravel code for it's configuration for that system is insufficient as you would otherwise have in the Laravel PHP shell, in which you "tinkered", a string with that human readable format (and probably in lowercase as in the Laravel docs if their example is not specifically for PostgreSQL only (Q&A)).
We now go deeper as so far we have only seen the human readable form of the UUID but you mention a problem specific to your RDBMS. Again your sample of the 128-bit number (16-byte) with the multi-byte segments in the readable form:
944CC79D-5980-4587-8A52-000A2F11D7D1
4 - 2 - 2 - 2 - 6
The database does not store this as a string, but as 16 bytes, and its also not a string of these bytes, but each of those multi-byte-segments is stored in a specific order:
944CC79D-5980-4587-8A52-000A2F11D7D1 -- byte-order in readable form
4 - 2 - 2 - 2 - 6
9DC74C94-8059-8745-8A52-000A2F11D7D1 -- byte-order in SQL Server
4* - 2* - 2* - 2 - 6
In this small listing, the star "*" marked segments are in reverse order. This creates a mixed-endian format used by the GUID specification (which I've simplifed, correct is little-endian).
We can also see that, when we take your binary string that has encoded 16 byte values, while some of its data got lost during the translation of the bytes through the various systems (e.g. posting it as a question here on Stack Overflow), values below 128 (0-127) are stable and we can see their matching positions:
4* - 2* - 2* - 2 - 6
9DC74C94-8059-8745-8A52-000A2F11D7D1 -- Your readable sample
____4C__-__59-__45-__52-000A2F11____ -- b"ØÃLöÇYçEèR\0\n/\x11ÎÐ"
This at least allows the educated guess that both the UUID and the id property string in artisan-tinker(1) are related.
And finally allows the educated guess, that your Eloquent database model is getting the data from the database which has it as a 128-bit binary number ("GUID"), which then gets assigned to the id property as raw binary data - which is what strings in PHP are.
Whenever that string is JSON encoded, PHP's json_encode() function will yield the JSON error or throw the JsonException with the message "Malformed UTF-8 characters, possibly incorrectly encoded" which you were able to summon within the JSON Text in your question.
So double check your model's configuration, related migrations, their representation in the database and the related database model in your RDBMS.
As users are involved create yourself a new model just for testing that is unrelated to your existing app functionality to verify that your mental model (that is what and how you understand all that) is aligned with the reality of the system on your computer.
Who knows, maybe it's just the configuration of an argument of the database driver that is different across the two systems default driver settings.
Edit (After): Your answer shows it was the concrete driver for the SQL Server in your case: dblib made your code having the raw binary UUID strings, while sqlsrv is having the human readable UUID strings behaviour.