@@ -66,7 +66,7 @@ public function cache(string $method, array $arguments, callable $callback)
6666
6767 public function create (string $ class , array $ data ): object
6868 {
69- if (property_exists ($ class , 'id ' ) && (!array_key_exists ('id ' , $ data ) || !$ data ['id ' ])) {
69+ if ((! class_exists ( $ class , false ) || property_exists ($ class , 'id ' ) ) && (!array_key_exists ('id ' , $ data ) || !$ data ['id ' ])) {
7070 $ data ['id ' ] = $ this ->generateId ($ class );
7171 }
7272
@@ -141,7 +141,7 @@ public function findOrCreate(string $class, array $query, array $data = []): obj
141141
142142 $ data = array_merge ($ query , $ data );
143143
144- if (property_exists ($ class , 'id ' ) && (!array_key_exists ('id ' , $ data ) || !$ data ['id ' ])) {
144+ if ((! class_exists ( $ class , false ) || property_exists ($ class , 'id ' ) ) && (!array_key_exists ('id ' , $ data ) || !$ data ['id ' ])) {
145145 $ data = array_merge ($ data , ['id ' => $ this ->generateId ($ class )]);
146146 }
147147
@@ -166,6 +166,9 @@ public function findOrFail(string $class, array $query): ?object
166166 public function generateId (string $ class ): int |string
167167 {
168168 $ model = $ this ->schema ->getClassModel ($ class );
169+ if (!class_exists ($ class , false ) && !$ model ) {
170+ return Sequence::getNext ($ this , $ class );
171+ }
169172
170173 return match ($ model ->getProperties ()[0 ]->type ) {
171174 'int ' => Sequence::getNext ($ this , $ model ->table ),
0 commit comments