From 1226c4d6ed0e173b5285776fef22bc00ae470bbb Mon Sep 17 00:00:00 2001 From: Rafael Queiroz Date: Mon, 27 Oct 2025 21:25:16 -0300 Subject: [PATCH 1/5] Exclude property hooks on return of Model::__sleep() --- src/Illuminate/Database/Eloquent/Model.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Illuminate/Database/Eloquent/Model.php b/src/Illuminate/Database/Eloquent/Model.php index 90260a57ca32..6895040e8674 100644 --- a/src/Illuminate/Database/Eloquent/Model.php +++ b/src/Illuminate/Database/Eloquent/Model.php @@ -2595,7 +2595,16 @@ public function __sleep() $this->relationAutoloadCallback = null; $this->relationAutoloadContext = null; - return array_keys(get_object_vars($this)); + $keys = get_object_vars($this); + if (version_compare(PHP_VERSION, '8.4.0') >= 0) { + foreach ((new \ReflectionClass($this))->getProperties() as $property) { + if ($property->hasHooks()) { + unset ($keys[$property->getName()]); + } + } + } + + return array_keys($keys); } /** From 2cabf98a3c72bc9a4b0fb75007ea9f165510301c Mon Sep 17 00:00:00 2001 From: Rafael Queiroz Date: Mon, 27 Oct 2025 21:32:39 -0300 Subject: [PATCH 2/5] Exclude property hooks on return of Model::__sleep() --- src/Illuminate/Database/Eloquent/Model.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Illuminate/Database/Eloquent/Model.php b/src/Illuminate/Database/Eloquent/Model.php index 6895040e8674..3c958610cfc4 100644 --- a/src/Illuminate/Database/Eloquent/Model.php +++ b/src/Illuminate/Database/Eloquent/Model.php @@ -2599,7 +2599,7 @@ public function __sleep() if (version_compare(PHP_VERSION, '8.4.0') >= 0) { foreach ((new \ReflectionClass($this))->getProperties() as $property) { if ($property->hasHooks()) { - unset ($keys[$property->getName()]); + unset($keys[$property->getName()]); } } } From 0ac2af82367c2deff32cd72d4a4daae2e24ca83b Mon Sep 17 00:00:00 2001 From: Rafael Queiroz Date: Mon, 27 Oct 2025 21:38:57 -0300 Subject: [PATCH 3/5] Exclude property hooks on return of Model::__sleep() --- src/Illuminate/Database/Eloquent/Model.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Illuminate/Database/Eloquent/Model.php b/src/Illuminate/Database/Eloquent/Model.php index 3c958610cfc4..6895040e8674 100644 --- a/src/Illuminate/Database/Eloquent/Model.php +++ b/src/Illuminate/Database/Eloquent/Model.php @@ -2599,7 +2599,7 @@ public function __sleep() if (version_compare(PHP_VERSION, '8.4.0') >= 0) { foreach ((new \ReflectionClass($this))->getProperties() as $property) { if ($property->hasHooks()) { - unset($keys[$property->getName()]); + unset ($keys[$property->getName()]); } } } From 5778d45375e06569200b979cece2c282d291ade8 Mon Sep 17 00:00:00 2001 From: Rafael Queiroz Date: Mon, 27 Oct 2025 21:39:03 -0300 Subject: [PATCH 4/5] Exclude property hooks on return of Model::__sleep() --- src/Illuminate/Database/Eloquent/Model.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Illuminate/Database/Eloquent/Model.php b/src/Illuminate/Database/Eloquent/Model.php index 6895040e8674..3c958610cfc4 100644 --- a/src/Illuminate/Database/Eloquent/Model.php +++ b/src/Illuminate/Database/Eloquent/Model.php @@ -2599,7 +2599,7 @@ public function __sleep() if (version_compare(PHP_VERSION, '8.4.0') >= 0) { foreach ((new \ReflectionClass($this))->getProperties() as $property) { if ($property->hasHooks()) { - unset ($keys[$property->getName()]); + unset($keys[$property->getName()]); } } } From e702a5eeb9b3e98287e79ade7477e2a00701750e Mon Sep 17 00:00:00 2001 From: Taylor Otwell Date: Tue, 28 Oct 2025 09:16:29 -0500 Subject: [PATCH 5/5] formatting --- src/Illuminate/Database/Eloquent/Model.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Illuminate/Database/Eloquent/Model.php b/src/Illuminate/Database/Eloquent/Model.php index 3c958610cfc4..f8a609fc014b 100644 --- a/src/Illuminate/Database/Eloquent/Model.php +++ b/src/Illuminate/Database/Eloquent/Model.php @@ -2596,8 +2596,9 @@ public function __sleep() $this->relationAutoloadContext = null; $keys = get_object_vars($this); + if (version_compare(PHP_VERSION, '8.4.0') >= 0) { - foreach ((new \ReflectionClass($this))->getProperties() as $property) { + foreach ((new ReflectionClass($this))->getProperties() as $property) { if ($property->hasHooks()) { unset($keys[$property->getName()]); }