From abf415825698880551798e2cd1bf4b8605b96f3c Mon Sep 17 00:00:00 2001
From: philipp lang <philipp@aweos.de>
Date: Thu, 3 Apr 2025 00:10:40 +0200
Subject: [PATCH] Fix phpstan

---
 phpstan.neon                            |  2 ++
 tests/stub/phpstan/CastsAttributes.stub | 35 +++++++++++++++++++++++++
 tests/stub/phpstan/File.stub            | 11 ++++++++
 3 files changed, 48 insertions(+)
 create mode 100644 tests/stub/phpstan/CastsAttributes.stub
 create mode 100644 tests/stub/phpstan/File.stub

diff --git a/phpstan.neon b/phpstan.neon
index f7b730e2..3d85785d 100644
--- a/phpstan.neon
+++ b/phpstan.neon
@@ -8,6 +8,8 @@ parameters:
         - tests/stub/phpstan/TestResponse.stub
         - tests/stub/phpstan/Settings.stub
         - tests/stub/phpstan/DataEloquentCast.stub
+        - tests/stub/phpstan/File.stub
+        - tests/stub/phpstan/CastsAttributes.stub
 
     paths:
         - app
diff --git a/tests/stub/phpstan/CastsAttributes.stub b/tests/stub/phpstan/CastsAttributes.stub
new file mode 100644
index 00000000..d408ece5
--- /dev/null
+++ b/tests/stub/phpstan/CastsAttributes.stub
@@ -0,0 +1,35 @@
+<?php
+
+namespace Illuminate\Contracts\Database\Eloquent;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * @template TGet
+ * @template TSet
+ * @copy
+ */
+interface CastsAttributes
+{
+    /**
+     * Transform the attribute from the underlying model values.
+     *
+     * @param  \Illuminate\Database\Eloquent\Model  $model
+     * @param  string  $key
+     * @param  mixed  $value
+     * @param  array<string, mixed>  $attributes
+     * @return TGet|null
+     */
+    public function get(Model $model, string $key, mixed $value, array $attributes);
+
+    /**
+     * Transform the attribute to its underlying model values.
+     *
+     * @param  \Illuminate\Database\Eloquent\Model  $model
+     * @param  string  $key
+     * @param  TSet|null  $value
+     * @param  array<string, mixed>  $attributes
+     * @return mixed
+     */
+    public function set(Model $model, string $key, mixed $value, array $attributes);
+}
diff --git a/tests/stub/phpstan/File.stub b/tests/stub/phpstan/File.stub
new file mode 100644
index 00000000..e0cb5730
--- /dev/null
+++ b/tests/stub/phpstan/File.stub
@@ -0,0 +1,11 @@
+<?php
+
+namespace Symfony\Component\HttpFoundation\File;
+
+/**
+ * @copy
+ */
+class File
+{
+
+}