Model
abstract class Model implements Arrayable, ArrayAccess, CanBeEscapedWhenCastToString, HasBroadcastChannel, Jsonable, JsonSerializable, QueueableEntity, Stringable, UrlRoutable (View source)
Traits
Constants
| CREATED_AT | 
                     The name of the "created at" column.  | 
            
| UPDATED_AT | 
                     The name of the "updated at" column.  | 
            
Properties
| protected array<string,mixed> | $attributes | The model's attributes.  | 
                from HasAttributes | 
| protected array<string,mixed> | $original | The model attribute's original state.  | 
                from HasAttributes | 
| protected array<string,mixed> | $changes | The changed model attributes.  | 
                from HasAttributes | 
| protected array<string,mixed> | $previous | The previous state of the changed model attributes.  | 
                from HasAttributes | 
| protected array | $casts | The attributes that should be cast.  | 
                from HasAttributes | 
| protected array | $classCastCache | The attributes that have been cast using custom classes.  | 
                from HasAttributes | 
| protected array | $attributeCastCache | The attributes that have been cast using "Attribute" return type mutators.  | 
                from HasAttributes | 
| static protected string[] | $primitiveCastTypes | The built-in, primitive cast types supported by Eloquent.  | 
                from HasAttributes | 
| protected string|null | $dateFormat | The storage format of the model's date columns.  | 
                from HasAttributes | 
| protected array | $appends | The accessors to append to the model's array form.  | 
                from HasAttributes | 
| static bool | $snakeAttributes | Indicates whether attributes are snake cased on arrays.  | 
                from HasAttributes | 
| static protected array | $mutatorCache | The cache of the mutated attributes for each class.  | 
                from HasAttributes | 
| static protected array | $attributeMutatorCache | The cache of the "Attribute" return type marked mutated attributes for each class.  | 
                from HasAttributes | 
| static protected array | $getAttributeMutatorCache | The cache of the "Attribute" return type marked mutated, gettable attributes for each class.  | 
                from HasAttributes | 
| static protected array | $setAttributeMutatorCache | The cache of the "Attribute" return type marked mutated, settable attributes for each class.  | 
                from HasAttributes | 
| static protected array | $castTypeCache | The cache of the converted cast types.  | 
                from HasAttributes | 
| static Encrypter|null | $encrypter | The encrypter instance that is used to encrypt attributes.  | 
                from HasAttributes | 
| protected array | $dispatchesEvents | The event map for the model.  | 
                from HasEvents | 
| protected array | $observables | User exposed observable events.  | 
                from HasEvents | 
| protected array | $relations | The loaded relationships for the model.  | 
                from HasRelationships | 
| protected array | $touches | The relationships that should be touched on save.  | 
                from HasRelationships | 
| protected Closure|null | $relationAutoloadCallback | The relationship autoloader callback.  | 
                from HasRelationships | 
| protected mixed | $relationAutoloadContext | The relationship autoloader callback context.  | 
                from HasRelationships | 
| static string[] | $manyMethods | The many to many relationship methods.  | 
                from HasRelationships | 
| static protected array | $relationResolvers | The relation resolver callbacks.  | 
                from HasRelationships | 
| bool | $timestamps | Indicates if the model should be timestamped.  | 
                from HasTimestamps | 
| static protected array | $ignoreTimestampsOn | The list of models classes that have timestamps temporarily disabled.  | 
                from HasTimestamps | 
| bool | $usesUniqueIds | Indicates if the model uses unique ids.  | 
                from HasUniqueIds | 
| $hidden | The attributes that should be hidden for serialization.  | 
                from HidesAttributes | |
| protected string[] | $visible | The attributes that should be visible in serialization.  | 
                from HidesAttributes | 
| protected array<int,string> | $fillable | The attributes that are mass assignable.  | 
                from GuardsAttributes | 
| protected string[] | $guarded | The attributes that aren't mass assignable.  | 
                from GuardsAttributes | 
| static protected bool | $unguarded | Indicates if all mass assignment is enabled.  | 
                from GuardsAttributes | 
| static protected array<class-string,list<string>> | $guardableColumns | The actual columns that exist on the database and can be guarded.  | 
                from GuardsAttributes | 
| static protected WeakMap<static,array<string,mixed>> | $recursionCache | The cache of objects processed to prevent infinite recursion.  | 
                from PreventsCircularRecursion | 
| static protected | $resolvedCollectionClasses | from HasCollection | |
| protected UnitEnum|string|null | $connection | The connection name for the model.  | 
                |
| protected string|null | $table | The table associated with the model.  | 
                |
| protected string | $primaryKey | The primary key for the model.  | 
                |
| protected string | $keyType | The "type" of the primary key ID.  | 
                |
| bool | $incrementing | Indicates if the IDs are auto-incrementing.  | 
                |
| protected array | $with | The relations to eager load on every query.  | 
                |
| protected array | $withCount | The relationship counts that should be eager loaded on every query.  | 
                |
| bool | $preventsLazyLoading | Indicates whether lazy loading will be prevented on this model.  | 
                |
| protected int | $perPage | The number of models to return for pagination.  | 
                |
| bool | $exists | Indicates if the model exists.  | 
                |
| bool | $wasRecentlyCreated | Indicates if the model was inserted during the object's lifecycle.  | 
                |
| protected bool | $escapeWhenCastingToString | Indicates that the object's string representation should be escaped when __toString is invoked.  | 
                |
| static protected ConnectionResolverInterface | $resolver | The connection resolver instance.  | 
                |
| static protected Dispatcher|null | $dispatcher | The event dispatcher instance.  | 
                |
| static protected array | $booted | The array of booted models.  | 
                |
| static protected array | $bootedCallbacks | The callbacks that should be executed after the model has booted.  | 
                |
| static protected array | $traitInitializers | The array of trait initializers that will be called on each new instance.  | 
                |
| static protected array | $globalScopes | The array of global scopes on the model.  | 
                |
| static protected array | $ignoreOnTouch | The list of models classes that should not be affected with touch.  | 
                |
| static protected bool | $modelsShouldPreventLazyLoading | Indicates whether lazy loading should be restricted on all models.  | 
                |
| static protected bool | $modelsShouldAutomaticallyEagerLoadRelationships | Indicates whether relations should be automatically loaded on all models when they are accessed.  | 
                |
| static protected callable|null | $lazyLoadingViolationCallback | The callback that is responsible for handling lazy loading violations.  | 
                |
| static protected bool | $modelsShouldPreventSilentlyDiscardingAttributes | Indicates if an exception should be thrown instead of silently discarding non-fillable attributes.  | 
                |
| static protected callable|null | $discardedAttributeViolationCallback | The callback that is responsible for handling discarded attribute violations.  | 
                |
| static protected bool | $modelsShouldPreventAccessingMissingAttributes | Indicates if an exception should be thrown when trying to access a missing attribute on a retrieved model.  | 
                |
| static protected callable|null | $missingAttributeViolationCallback | The callback that is responsible for handling missing attribute violations.  | 
                |
| static protected bool | $isBroadcasting | Indicates if broadcasting is currently enabled.  | 
                |
| static protected | $builder | The Eloquent query builder class to use for the model.  | 
                |
| static protected | $collectionClass | The Eloquent collection class to use for the model.  | 
                |
| static protected | $isSoftDeletable | ||
| static protected | $isPrunable | ||
| static protected | $isMassPrunable | 
Methods
Convert the model's attributes to an array.
Add the date attributes to the attributes array.
Add the mutated attributes to the attributes array.
Add the casted attributes to the attributes array.
Get an attribute array of all arrayable attributes.
Get an attribute array of all arrayable values.
Determine whether an attribute exists on the model.
Either throw a missing attribute exception or return null depending on Eloquent's configuration.
Get an attribute from the $attributes array.
Determine if the given key is a relationship method on the model.
Get a relationship value from a method.
Determine if a get mutator exists for an attribute.
Determine if a "Attribute" return type marked mutator exists for an attribute.
Determine if a "Attribute" return type marked get mutator exists for an attribute.
Determine if any get mutator exists for an attribute.
Get the value of an attribute using its mutator.
Get the value of an "Attribute" return type marked attribute using its mutator.
Get the value of an attribute using its mutator for array conversion.
Ensure that the given casts are strings.
Cast an attribute to a native PHP type.
Cast the given attribute using a custom cast class.
Cast the given attribute to an enum.
Increment or decrement the given attribute using the custom cast class.
Serialize the given attribute using the custom cast class.
Compare two values for the given attribute using the custom cast class.
Determine if the cast type is a custom date time cast.
Determine if the cast type is an immutable custom date time cast.
Set a given attribute on the model.
Determine if a set mutator exists for an attribute.
Determine if an "Attribute" return type marked set mutator exists for an attribute.
Set the value of an attribute using its mutator.
Set the value of a "Attribute" return type marked attribute using its mutator.
Determine if the given attribute is a date or date castable.
Set a given JSON attribute on the model.
Set the value of a class castable attribute.
Set the value of an enum castable attribute.
Get an enum case instance from a given class and value.
Get the storable value from the given enum.
Get an array attribute with the given key and value set.
Get an array attribute or return an empty array if it is not set.
Cast the given attribute to JSON.
Get the JSON casting flags for the given attribute.
Decode the given JSON back into an array or object.
Cast the given attribute to an encrypted string.
Set the encrypter instance that will be used to encrypt attributes.
Get the current encrypter being used by the model.
Cast the given attribute to a hashed string.
Return a timestamp as DateTime object with time set to 00:00:00.
Determine if the given value is a standard date format.
Determine whether an attribute should be cast to a native type.
Determine whether a value is Date / DateTime castable for inbound manipulation.
Determine whether a value is Date / DateTime custom-castable for inbound manipulation.
Determine whether a value is JSON castable for inbound manipulation.
Determine whether a value is an encrypted castable for inbound manipulation.
Determine if the given key is cast using a custom class.
Determine if the given key is cast using an enum.
Determine if the key is deviable using a custom class.
Determine if the key is serializable using a custom class.
Determine if the key is comparable using a custom class.
Resolve the custom caster class for a given key.
Parse the given caster class, removing any arguments.
Merge the cast class and attribute cast attributes back into the model.
Merge the cast class attributes back into the model.
Merge the cast class attributes back into the model.
Normalize the response from a custom class caster.
Get all of the current attributes on the model.
Get all of the current attributes on the model for an insert operation.
Set the array of model attributes. No checking is done.
Get the model's original attribute values.
Get the model's original attribute values.
Get the model's raw original attribute values.
Get a subset of the model's attributes.
Get all attributes except the given ones.
Sync a single original attribute with its current value.
Sync multiple original attribute with their current values.
Determine if the model or any of the given attribute(s) have been modified.
Determine if the model or all the given attribute(s) have remained the same.
Discard attribute changes and reset the attributes to their original state.
Determine if the model or any of the given attribute(s) were changed when the model was last saved.
Determine if any of the given attributes were changed when the model was last saved.
Get the attributes that have been changed since the last sync.
Get the attributes that have been changed since the last sync for an update operation.
Get the attributes that were changed when the model was last saved.
Get the attributes that were previously original before the model was last saved.
Determine if the new and old values for a given key are equivalent.
Transform a raw model value using mutators, casts, etc.
Append attributes to query when building a query.
Merge new appended attributes with existing appended attributes on the model.
Return whether the accessor attribute has been appended.
Extract and cache all the mutated attributes of a class.
Get all of the attribute mutator methods.
Get all of the "Attribute" return typed attribute mutator methods.
Resolve the observe class names from the attributes.
Register a single observer with the model.
Register a model event with the dispatcher.
Fire the given event for the model.
Fire a custom model event for the given event.
Register a retrieved model event with the dispatcher.
Register a saving model event with the dispatcher.
Register a saved model event with the dispatcher.
Register an updating model event with the dispatcher.
Register an updated model event with the dispatcher.
Register a creating model event with the dispatcher.
Register a created model event with the dispatcher.
Register a replicating model event with the dispatcher.
Register a deleting model event with the dispatcher.
Register a deleted model event with the dispatcher.
Execute a callback without firing any model events for any model type.
Boot the has global scopes trait for a model.
Resolve the global scope class names from the attributes.
Register a new global scope on the model.
Register multiple global scopes on the model.
Get all of the global scopes that are currently registered.
Get the dynamic relation resolver if defined or inherited, or return null.
Determine if a relationship autoloader callback has been defined.
Define an automatic relationship autoloader callback for this model and its relations.
Attempt to autoload the given relationship using the autoload callback.
Invoke the relationship autoloader callback for the given relationships.
Propagate the relationship autoloader callback to the given related models.
Define a one-to-one relationship.
Instantiate a new HasOne relationship.
No description
No description
Define a polymorphic one-to-one relationship.
Instantiate a new MorphOne relationship.
Define an inverse one-to-one or many relationship.
Instantiate a new BelongsTo relationship.
Define a polymorphic, inverse one-to-one or many relationship.
Define a polymorphic, inverse one-to-one or many relationship.
Define a polymorphic, inverse one-to-one or many relationship.
Instantiate a new MorphTo relationship.
Retrieve the actual class name for a given morph class.
Create a pending has-many-through or has-one-through relationship.
Define a one-to-many relationship.
Instantiate a new HasMany relationship.
No description
No description
Define a polymorphic one-to-many relationship.
Instantiate a new MorphMany relationship.
No description
No description
Define a polymorphic many-to-many relationship.
Instantiate a new MorphToMany relationship.
Define a polymorphic, inverse many-to-many relationship.
Get the relationship name of the belongsToMany relationship.
Get the joining table name for a many-to-many relation.
Get this model's half of the intermediate table name for belongsToMany relationships.
Determine if the model touches a given relation.
Get the polymorphic relationship columns.
Create a new model instance for a related model.
Create a new model instance for a related "through" model.
Set the given relationship on the model.
Set the entire relations array on the model.
Enable relationship autoloading for this model.
Duplicate the instance and unset all the loaded relations.
Set the relationships that are touched on save.
Update the model's update timestamp without raising any events.
Get the fully qualified "created at" column.
Get the fully qualified "updated at" column.
Disable timestamps for the current class during the given callback scope.
Disable timestamps for the given model classes during the given callback scope.
Determine if the given model is ignoring timestamps / touches.
Merge new hidden attributes with existing hidden attributes on the model.
Merge new visible attributes with existing visible attributes on the model.
Make the given, typically hidden, attributes visible.
Make the given, typically hidden, attributes visible if the given truth test passes.
Make the given, typically visible, attributes hidden.
Make the given, typically visible, attributes hidden if the given truth test passes.
Merge new fillable attributes with existing fillable attributes on the model.
Merge new guarded attributes with existing guarded attributes on the model.
Disable all mass assignable restrictions.
Determine if the given attribute may be mass assigned.
Determine if the given column is a valid, guardable column.
Get the fillable attributes of a given array.
Prevent a method from being called multiple times on the same object within the same call stack.
Remove an entry from the recursion cache for an object.
Get the stack of methods being called recursively for the current object.
Get the current recursion cache being used by the model.
Set a value in the recursion cache for the given object and method.
Create a new resource object for the given resource.
Guess the resource class name for the model.
Get the resource class from the class attribute.
Forward a method call to the given object.
Forward a method call to the given object, returning $this if the forwarded call returned itself.
Throw a bad method call exception for the given method.
Create a new Eloquent Collection instance.
Resolve the collection class name from the CollectedBy attribute.
Create a new Eloquent model instance.
Check if the model needs to be booted and if so, do it.
Perform any actions required before the model boots.
Bootstrap the model and its traits.
Boot all of the bootable traits on the model.
Initialize any initializable traits on the model.
Perform any actions required after the model boots.
Clear the list of booted models so they will be re-booted.
Disables relationship model touching for the current class during given callback scope.
Disables relationship model touching for the given model classes during given callback scope.
Determine if the given model is ignoring touches.
Indicate that models should prevent lazy loading, silently discarding attributes, and accessing missing attributes.
Prevent model relationships from being lazy loaded.
Determine if model relationships should be automatically eager loaded when accessed.
Register a callback that is responsible for handling lazy loading violations.
Prevent non-fillable attributes from being silently discarded.
Register a callback that is responsible for handling discarded attribute violations.
Prevent accessing missing attributes on retrieved models.
Register a callback that is responsible for handling missing attribute violations.
Execute a callback without broadcasting any model events for all model types.
Fill the model with an array of attributes.
Fill the model with an array of attributes. Force mass assignment.
Qualify the given column name by the model's table.
Qualify the given columns with the model's table.
Create a new instance of the given model.
Create a new model instance that is existing.
Begin querying the model on a given connection.
Begin querying the model on the write connection.
Get all of the models from the database.
Begin querying a model with eager loading.
Eager load relations on the model.
Eager load relationships on the polymorphic relation of a model.
Eager load relations on the model if they are not already eager loaded.
Eager load relation's column aggregations on the model.
Eager load relation counts on the model.
Eager load relation max column values on the model.
Eager load relation min column values on the model.
Eager load relation's column summations on the model.
Eager load relation average column values on the model.
Eager load related model existence values on the model.
Eager load relationship column aggregation on the polymorphic relation of a model.
Eager load relationship counts on the polymorphic relation of a model.
Eager load relationship max column values on the polymorphic relation of a model.
Eager load relationship min column values on the polymorphic relation of a model.
Eager load relationship column summations on the polymorphic relation of a model.
Eager load relationship average column values on the polymorphic relation of a model.
Increment a column's value by a given amount.
Decrement a column's value by a given amount.
Run the increment or decrement method on the model.
Update the model in the database.
Update the model in the database within a transaction.
Update the model in the database without raising any events.
Increment a column's value by a given amount without raising any events.
Decrement a column's value by a given amount without raising any events.
Save the model and all of its relationships.
Save the model and all of its relationships without raising any events to the parent model.
Save the model to the database without raising any events.
Save the model to the database.
Save the model to the database within a transaction.
Perform any actions that are necessary after the model is saved.
Set the keys for a select query.
Get the primary key value for a select query.
Set the keys for a save update query.
Get the primary key value for a save query.
Insert the given attributes and set the ID on the model.
Delete the model from the database.
Delete the model from the database without raising any events.
Delete the model from the database within a transaction.
Force a hard delete on a soft deleted model.
Perform the actual delete query on this model instance.
Begin querying the model.
Get a new query builder for the model's table.
Get a new query builder that doesn't have any global scopes or eager loading.
Get a new query builder with no relationships loaded.
Register the global scopes for this builder instance.
Get a new query builder that doesn't have any global scopes.
Get a new query to restore one or more models by their queueable IDs.
Resolve the custom Eloquent builder class from the model attributes.
Get a new query builder instance for the connection.
Determine if the model has a given scope.
Apply the given named scope if possible.
Determine if the given method has a scope attribute.
Convert the model instance to an array.
Convert the model instance to JSON.
Convert the model instance to pretty print formatted JSON.
Convert the object into something JSON serializable.
Reload the current model instance with fresh attributes from the database.
Clone the model into a new, non-existing instance without raising any events.
Get the database connection for the model.
Get the current connection name for the model.
Set the connection associated with the model.
Resolve a connection instance.
Get the connection resolver instance.
Unset the connection resolver for models.
Get the table associated with the model.
Set the table associated with the model.
Get the primary key for the model.
Set the primary key for the model.
Get the table qualified key name.
Get the auto-incrementing key type.
Set the data type for the primary key.
Get the value indicating whether the IDs are incrementing.
Set whether IDs are incrementing.
Get the value of the model's primary key.
Get the queueable identity for the entity.
Get the queueable relationships for the entity.
Get the queueable connection for the entity.
Get the value of the model's route key.
Get the route key for the model.
Retrieve the model for a bound value.
Retrieve the model for a bound value.
Retrieve the child model for a bound value.
Retrieve the child model for a bound value.
No description
Retrieve the child route model binding relationship name for the given child type.
Retrieve the model for a bound value.
Get the default foreign key name for the model.
Get the number of models to return per page.
Set the number of models to return per page.
Determine if the model is soft deletable.
Determine if the model is prunable.
Determine if the model is mass prunable.
Determine if lazy loading is disabled.
Determine if relationships are being automatically eager loaded when accessed.
Determine if discarding guarded attribute fills is disabled.
Determine if accessing missing attributes is disabled.
Get the broadcast channel route definition that is associated with the given entity.
Get the broadcast channel name that is associated with the given entity.
Dynamically retrieve attributes on the model.
Dynamically set attributes on the model.
Determine if the given attribute exists.
Get the value for a given offset.
Set the value for a given offset.
Unset the value for a given offset.
Determine if an attribute or relation exists on the model.
Unset an attribute on the model.
Handle dynamic method calls into the model.
Handle dynamic static method calls into the model.
Convert the model to its string representation.
Indicate that the object's string representation should be escaped when __toString is invoked.
Prepare the object for serialization.
When a model is being unserialized, check if it needs to be booted.
Details
        
                    protected        void
    initializeHasAttributes()
        
    
    Initialize the trait.
        
                            array<string,mixed>
    attributesToArray()
        
    
    Convert the model's attributes to an array.
        
                    protected        array<string,mixed>
    addDateAttributesToArray(array $attributes)
        
    
    Add the date attributes to the attributes array.
        
                    protected        array<string,mixed>
    addMutatedAttributesToArray(array $attributes, array $mutatedAttributes)
        
    
    Add the mutated attributes to the attributes array.
        
                    protected        array<string,mixed>
    addCastAttributesToArray(array $attributes, array $mutatedAttributes)
        
    
    Add the casted attributes to the attributes array.
        
                    protected        array<string,mixed>
    getArrayableAttributes()
        
    
    Get an attribute array of all arrayable attributes.
        
                    protected        array
    getArrayableAppends()
        
    
    Get all of the appendable values that are arrayable.
        
                            array
    relationsToArray()
        
    
    Get the model's relationships in array form.
        
                    protected        array
    getArrayableRelations()
        
    
    Get an attribute array of all arrayable relations.
        
                    protected        array
    getArrayableItems(array $values)
        
    
    Get an attribute array of all arrayable values.
        
                            bool
    hasAttribute(string $key)
        
    
    Determine whether an attribute exists on the model.
        
                            mixed
    getAttribute(string $key)
        
    
    Get an attribute from the model.
        
                    protected        null
    throwMissingAttributeExceptionIfApplicable(string $key)
        
    
    Either throw a missing attribute exception or return null depending on Eloquent's configuration.
        
                            mixed
    getAttributeValue(string $key)
        
    
    Get a plain attribute (not a relationship).
        
                    protected        mixed
    getAttributeFromArray(string $key)
        
    
    Get an attribute from the $attributes array.
        
                            mixed
    getRelationValue(string $key)
        
    
    Get a relationship.
        
                            bool
    isRelation(string $key)
        
    
    Determine if the given key is a relationship method on the model.
        
                    protected        mixed
    handleLazyLoadingViolation(string $key)
        
    
    Handle a lazy loading violation.
        
                    protected        mixed
    getRelationshipFromMethod(string $method)
        
    
    Get a relationship value from a method.
        
                            bool
    hasGetMutator(string $key)
        
    
    Determine if a get mutator exists for an attribute.
        
                            bool
    hasAttributeMutator(string $key)
        
    
    Determine if a "Attribute" return type marked mutator exists for an attribute.
        
                            bool
    hasAttributeGetMutator(string $key)
        
    
    Determine if a "Attribute" return type marked get mutator exists for an attribute.
        
                            bool
    hasAnyGetMutator(string $key)
        
    
    Determine if any get mutator exists for an attribute.
        
                    protected        mixed
    mutateAttribute(string $key, mixed $value)
        
    
    Get the value of an attribute using its mutator.
        
                    protected        mixed
    mutateAttributeMarkedAttribute(string $key, mixed $value)
        
    
    Get the value of an "Attribute" return type marked attribute using its mutator.
        
                    protected        mixed
    mutateAttributeForArray(string $key, mixed $value)
        
    
    Get the value of an attribute using its mutator for array conversion.
        
                            $this
    mergeCasts(array $casts)
        
    
    Merge new casts with existing casts on the model.
        
                    protected        array
    ensureCastsAreStringValues(array $casts)
        
    
    Ensure that the given casts are strings.
        
                    protected        mixed
    castAttribute(string $key, mixed $value)
        
    
    Cast an attribute to a native PHP type.
        
                    protected        mixed
    getClassCastableAttributeValue(string $key, mixed $value)
        
    
    Cast the given attribute using a custom cast class.
        
                    protected        mixed
    getEnumCastableAttributeValue(string $key, mixed $value)
        
    
    Cast the given attribute to an enum.
        
                    protected        string
    getCastType(string $key)
        
    
    Get the type of cast for a model attribute.
        
                    protected        mixed
    deviateClassCastableAttribute(string $method, string $key, mixed $value)
        
    
    Increment or decrement the given attribute using the custom cast class.
        
                    protected        mixed
    serializeClassCastableAttribute(string $key, mixed $value)
        
    
    Serialize the given attribute using the custom cast class.
        
                    protected        bool
    compareClassCastableAttribute(string $key, mixed $original, mixed $value)
        
    
    Compare two values for the given attribute using the custom cast class.
        
                    protected        bool
    isCustomDateTimeCast(string $cast)
        
    
    Determine if the cast type is a custom date time cast.
        
                    protected        bool
    isImmutableCustomDateTimeCast(string $cast)
        
    
    Determine if the cast type is an immutable custom date time cast.
        
                    protected        bool
    isDecimalCast(string $cast)
        
    
    Determine if the cast type is a decimal cast.
        
                            mixed
    setAttribute(string $key, mixed $value)
        
    
    Set a given attribute on the model.
        
                            bool
    hasSetMutator(string $key)
        
    
    Determine if a set mutator exists for an attribute.
        
                            bool
    hasAttributeSetMutator(string $key)
        
    
    Determine if an "Attribute" return type marked set mutator exists for an attribute.
        
                    protected        mixed
    setMutatedAttributeValue(string $key, mixed $value)
        
    
    Set the value of an attribute using its mutator.
        
                    protected        mixed
    setAttributeMarkedMutatedAttributeValue(string $key, mixed $value)
        
    
    Set the value of a "Attribute" return type marked attribute using its mutator.
        
                    protected        bool
    isDateAttribute(string $key)
        
    
    Determine if the given attribute is a date or date castable.
        
                            $this
    fillJsonAttribute(string $key, mixed $value)
        
    
    Set a given JSON attribute on the model.
        
                    protected        void
    setClassCastableAttribute(string $key, mixed $value)
        
    
    Set the value of a class castable attribute.
        
                    protected        void
    setEnumCastableAttribute(string $key, UnitEnum|string|int|null $value)
        
    
    Set the value of an enum castable attribute.
        
                    protected        UnitEnum|BackedEnum
    getEnumCaseFromValue(string $enumClass, string|int $value)
        
    
    Get an enum case instance from a given class and value.
        
                    protected        string|int
    getStorableEnumValue(string $expectedEnum, UnitEnum|BackedEnum $value)
        
    
    Get the storable value from the given enum.
        
                    protected        $this
    getArrayAttributeWithValue(string $path, string $key, mixed $value)
        
    
    Get an array attribute with the given key and value set.
        
                    protected        array
    getArrayAttributeByKey(string $key)
        
    
    Get an array attribute or return an empty array if it is not set.
        
                    protected        string
    castAttributeAsJson(string $key, mixed $value)
        
    
    Cast the given attribute to JSON.
        
                    protected        int
    getJsonCastFlags(string $key)
        
    
    Get the JSON casting flags for the given attribute.
        
                    protected        string
    asJson(mixed $value, int $flags = 0)
        
    
    Encode the given value as JSON.
        
                            mixed
    fromJson(string|null $value, bool $asObject = false)
        
    
    Decode the given JSON back into an array or object.
        
                            mixed
    fromEncryptedString(string $value)
        
    
    Decrypt the given encrypted string.
        
                    protected        string
    castAttributeAsEncryptedString(string $key, mixed $value)
        
    
    Cast the given attribute to an encrypted string.
        
                static            void
    encryptUsing(Encrypter|null $encrypter)
        
    
    Set the encrypter instance that will be used to encrypt attributes.
        
                static            Encrypter
    currentEncrypter()
        
    
    Get the current encrypter being used by the model.
        
                    protected        string
    castAttributeAsHashedString(string $key, mixed $value)
        
    
    Cast the given attribute to a hashed string.
        
                            mixed
    fromFloat(mixed $value)
        
    
    Decode the given float.
        
                    protected        string
    asDecimal(float|string $value, int $decimals)
        
    
    Return a decimal as string.
        
                    protected        Carbon
    asDate(mixed $value)
        
    
    Return a timestamp as DateTime object with time set to 00:00:00.
        
                    protected        Carbon
    asDateTime(mixed $value)
        
    
    Return a timestamp as DateTime object.
        
                    protected        bool
    isStandardDateFormat(string $value)
        
    
    Determine if the given value is a standard date format.
        
                            string|null
    fromDateTime(mixed $value)
        
    
    Convert a DateTime to a storable string.
        
                    protected        int
    asTimestamp(mixed $value)
        
    
    Return a timestamp as unix timestamp.
        
                    protected        string
    serializeDate(DateTimeInterface $date)
        
    
    Prepare a date for array / JSON serialization.
        
                            array
    getDates()
        
    
    Get the attributes that should be converted to dates.
        
                            string
    getDateFormat()
        
    
    Get the format for database stored dates.
        
                            $this
    setDateFormat(string $format)
        
    
    Set the date format used by the model.
        
                            bool
    hasCast(string $key, array|string|null $types = null)
        
    
    Determine whether an attribute should be cast to a native type.
        
                            array
    getCasts()
        
    
    Get the attributes that should be cast.
        
                    protected        array<string,string>
    casts()
        
    
    Get the attributes that should be cast.
        
                    protected        bool
    isDateCastable(string $key)
        
    
    Determine whether a value is Date / DateTime castable for inbound manipulation.
        
                    protected        bool
    isDateCastableWithCustomFormat(string $key)
        
    
    Determine whether a value is Date / DateTime custom-castable for inbound manipulation.
        
                    protected        bool
    isJsonCastable(string $key)
        
    
    Determine whether a value is JSON castable for inbound manipulation.
        
                    protected        bool
    isEncryptedCastable(string $key)
        
    
    Determine whether a value is an encrypted castable for inbound manipulation.
        
                    protected        bool
    isClassCastable(string $key)
        
    
    Determine if the given key is cast using a custom class.
        
                    protected        bool
    isEnumCastable(string $key)
        
    
    Determine if the given key is cast using an enum.
        
                    protected        bool
    isClassDeviable(string $key)
        
    
    Determine if the key is deviable using a custom class.
        
                    protected        bool
    isClassSerializable(string $key)
        
    
    Determine if the key is serializable using a custom class.
        
                    protected        bool
    isClassComparable(string $key)
        
    
    Determine if the key is comparable using a custom class.
        
                    protected        mixed
    resolveCasterClass(string $key)
        
    
    Resolve the custom caster class for a given key.
        
                    protected        string
    parseCasterClass(string $class)
        
    
    Parse the given caster class, removing any arguments.
        
                    protected        void
    mergeAttributesFromCachedCasts()
        
    
    Merge the cast class and attribute cast attributes back into the model.
        
                    protected        void
    mergeAttributesFromClassCasts()
        
    
    Merge the cast class attributes back into the model.
        
                    protected        void
    mergeAttributesFromAttributeCasts()
        
    
    Merge the cast class attributes back into the model.
        
                    protected        array
    normalizeCastClassResponse(string $key, mixed $value)
        
    
    Normalize the response from a custom class caster.
        
                            array<string,mixed>
    getAttributes()
        
    
    Get all of the current attributes on the model.
        
                    protected        array
    getAttributesForInsert()
        
    
    Get all of the current attributes on the model for an insert operation.
        
                            $this
    setRawAttributes(array $attributes, bool $sync = false)
        
    
    Set the array of model attributes. No checking is done.
        
                            
    getOriginal(string|null $key = null, mixed $default = null)
        
    
    Get the model's original attribute values.
        
                    protected        
    getOriginalWithoutRewindingModel(string|null $key = null, mixed $default = null)
        
    
    Get the model's original attribute values.
        
                            
    getRawOriginal(string|null $key = null, mixed $default = null)
        
    
    Get the model's raw original attribute values.
        
                            array<string,mixed>
    only(string[]|mixed $attributes)
        
    
    Get a subset of the model's attributes.
        
                            array
    except(string[]|mixed $attributes)
        
    
    Get all attributes except the given ones.
        
                            $this
    syncOriginal()
        
    
    Sync the original attributes with the current.
        
                            $this
    syncOriginalAttribute(string $attribute)
        
    
    Sync a single original attribute with its current value.
        
                            $this
    syncOriginalAttributes(string[]|string $attributes)
        
    
    Sync multiple original attribute with their current values.
        
                            $this
    syncChanges()
        
    
    Sync the changed attributes.
        
                            bool
    isDirty(string[]|string|null $attributes = null)
        
    
    Determine if the model or any of the given attribute(s) have been modified.
        
                            bool
    isClean(string[]|string|null $attributes = null)
        
    
    Determine if the model or all the given attribute(s) have remained the same.
        
                            $this
    discardChanges()
        
    
    Discard attribute changes and reset the attributes to their original state.
        
                            bool
    wasChanged(string[]|string|null $attributes = null)
        
    
    Determine if the model or any of the given attribute(s) were changed when the model was last saved.
        
                    protected        bool
    hasChanges(string[] $changes, string[]|string|null $attributes = null)
        
    
    Determine if any of the given attributes were changed when the model was last saved.
        
                            array<string,mixed>
    getDirty()
        
    
    Get the attributes that have been changed since the last sync.
        
                    protected        array<string,mixed>
    getDirtyForUpdate()
        
    
    Get the attributes that have been changed since the last sync for an update operation.
        
                            array<string,mixed>
    getChanges()
        
    
    Get the attributes that were changed when the model was last saved.
        
                            array<string,mixed>
    getPrevious()
        
    
    Get the attributes that were previously original before the model was last saved.
        
                            bool
    originalIsEquivalent(string $key)
        
    
    Determine if the new and old values for a given key are equivalent.
        
                    protected        mixed
    transformModelValue(string $key, mixed $value)
        
    
    Transform a raw model value using mutators, casts, etc.
        
                            $this
    append(string[]|string $attributes)
        
    
    Append attributes to query when building a query.
        
                            array
    getAppends()
        
    
    Get the accessors that are being appended to model arrays.
        
                            $this
    setAppends(array $appends)
        
    
    Set the accessors to append to model arrays.
        
                            $this
    mergeAppends(array $appends)
        
    
    Merge new appended attributes with existing appended attributes on the model.
        
                            bool
    hasAppended(string $attribute)
        
    
    Return whether the accessor attribute has been appended.
        
                            array
    getMutatedAttributes()
        
    
    Get the mutated attributes for a given instance.
        
                static            void
    cacheMutatedAttributes(object|string $classOrInstance)
        
    
    Extract and cache all the mutated attributes of a class.
        
                static    protected        array
    getMutatorMethods(mixed $class)
        
    
    Get all of the attribute mutator methods.
        
                static    protected        array
    getAttributeMarkedMutatorMethods(mixed $class)
        
    
    Get all of the "Attribute" return typed attribute mutator methods.
        
                static            void
    bootHasEvents()
        
    
    Boot the has event trait for a model.
        
                static            array
    resolveObserveAttributes()
        
    
    Resolve the observe class names from the attributes.
        
                static            void
    observe(object|array|string $classes)
        
    
    Register observers with the model.
        
                    protected        void
    registerObserver(object|string $class)
        
    
    Register a single observer with the model.
        
                            array
    getObservableEvents()
        
    
    Get the observable event names.
        
                            $this
    setObservableEvents(array $observables)
        
    
    Set the observable event names.
        
                            void
    addObservableEvents(mixed $observables)
        
    
    Add an observable event name.
        
                            void
    removeObservableEvents(mixed $observables)
        
    
    Remove an observable event name.
        
                static    protected        void
    registerModelEvent(string $event, QueuedClosure|callable|array|class-string $callback)
        
    
    Register a model event with the dispatcher.
        
                    protected        mixed
    fireModelEvent(string $event, bool $halt = true)
        
    
    Fire the given event for the model.
        
                    protected        mixed
    fireCustomModelEvent(string $event, string $method)
        
    
    Fire a custom model event for the given event.
        
                    protected        mixed
    filterModelEventResults(mixed $result)
        
    
    Filter the model event results.
        
                static            void
    retrieved(QueuedClosure|callable|array|class-string $callback)
        
    
    Register a retrieved model event with the dispatcher.
        
                static            void
    saving(QueuedClosure|callable|array|class-string $callback)
        
    
    Register a saving model event with the dispatcher.
        
                static            void
    saved(QueuedClosure|callable|array|class-string $callback)
        
    
    Register a saved model event with the dispatcher.
        
                static            void
    updating(QueuedClosure|callable|array|class-string $callback)
        
    
    Register an updating model event with the dispatcher.
        
                static            void
    updated(QueuedClosure|callable|array|class-string $callback)
        
    
    Register an updated model event with the dispatcher.
        
                static            void
    creating(QueuedClosure|callable|array|class-string $callback)
        
    
    Register a creating model event with the dispatcher.
        
                static            void
    created(QueuedClosure|callable|array|class-string $callback)
        
    
    Register a created model event with the dispatcher.
        
                static            void
    replicating(QueuedClosure|callable|array|class-string $callback)
        
    
    Register a replicating model event with the dispatcher.
        
                static            void
    deleting(QueuedClosure|callable|array|class-string $callback)
        
    
    Register a deleting model event with the dispatcher.
        
                static            void
    deleted(QueuedClosure|callable|array|class-string $callback)
        
    
    Register a deleted model event with the dispatcher.
        
                static            void
    flushEventListeners()
        
    
    Remove all the event listeners for the model.
        
                            array
    dispatchesEvents()
        
    
    Get the event map for the model.
        
                static            Dispatcher|null
    getEventDispatcher()
        
    
    Get the event dispatcher instance.
        
                static            void
    setEventDispatcher(Dispatcher $dispatcher)
        
    
    Set the event dispatcher instance.
        
                static            void
    unsetEventDispatcher()
        
    
    Unset the event dispatcher for models.
        
                static            mixed
    withoutEvents(callable $callback)
        
    
    Execute a callback without firing any model events for any model type.
        
                static            void
    bootHasGlobalScopes()
        
    
    Boot the has global scopes trait for a model.
        
                static            array
    resolveGlobalScopeAttributes()
        
    
    Resolve the global scope class names from the attributes.
        
                static            mixed
    addGlobalScope($scope, $implementation = null)
        
    
    Register a new global scope on the model.
        
                static            void
    addGlobalScopes(array $scopes)
        
    
    Register multiple global scopes on the model.
        
                static            bool
    hasGlobalScope(Scope|string $scope)
        
    
    Determine if a model has a global scope.
        
                static            
    getGlobalScope(Scope|string $scope)
        
    
    Get a global scope registered with the model.
        
                static            array
    getAllGlobalScopes()
        
    
    Get all of the global scopes that are currently registered.
        
                static            void
    setAllGlobalScopes(array $scopes)
        
    
    Set the current global scopes.
        
                            array
    getGlobalScopes()
        
    
    Get the global scopes for this class instance.
        
                            Closure|null
    relationResolver(TRelatedModel> $class, string $key)
        
    
    Get the dynamic relation resolver if defined or inherited, or return null.
        
                static            void
    resolveRelationUsing(string $name, Closure $callback)
        
    
    Define a dynamic relation resolver.
        
                            bool
    hasRelationAutoloadCallback()
        
    
    Determine if a relationship autoloader callback has been defined.
        
                            $this
    autoloadRelationsUsing(Closure $callback, mixed $context = null)
        
    
    Define an automatic relationship autoloader callback for this model and its relations.
        
                    protected        bool
    attemptToAutoloadRelation(string $key)
        
    
    Attempt to autoload the given relationship using the autoload callback.
        
                    protected        void
    invokeRelationAutoloadCallbackFor(string $key, array $tuples)
        
    
    Invoke the relationship autoloader callback for the given relationships.
        
                    protected        void
    propagateRelationAutoloadCallbackToRelation(string $key, mixed $models)
        
    
    Propagate the relationship autoloader callback to the given related models.
        
                            TRelatedModel,$this>
    hasOne(TRelatedModel> $related, string|null $foreignKey = null, string|null $localKey = null)
        
    
    Define a one-to-one relationship.
        
                    protected        TDeclaringModel>
    newHasOne(Builder $query, Model $parent, string $foreignKey, string $localKey)
        
    
    Instantiate a new HasOne relationship.
        
                            
    hasOneThrough($related, $through, $firstKey = null, $secondKey = null, $localKey = null, $secondLocalKey = null)
        
    
    No description
        
                    protected        
    newHasOneThrough(Builder $query, Model $farParent, Model $throughParent, $firstKey, $secondKey, $localKey, $secondLocalKey)
        
    
    No description
        
                            TRelatedModel,$this>
    morphOne(TRelatedModel> $related, string $name, string|null $type = null, string|null $id = null, string|null $localKey = null)
        
    
    Define a polymorphic one-to-one relationship.
        
                    protected        TDeclaringModel>
    newMorphOne(Builder $query, Model $parent, string $type, string $id, string $localKey)
        
    
    Instantiate a new MorphOne relationship.
        
                            TRelatedModel,$this>
    belongsTo(TRelatedModel> $related, string|null $foreignKey = null, string|null $ownerKey = null, string|null $relation = null)
        
    
    Define an inverse one-to-one or many relationship.
        
                    protected        TDeclaringModel>
    newBelongsTo(Builder $query, Model $child, string $foreignKey, string $ownerKey, string $relation)
        
    
    Instantiate a new BelongsTo relationship.
        
                            Model,$this>
    morphTo(string|null $name = null, string|null $type = null, string|null $id = null, string|null $ownerKey = null)
        
    
    Define a polymorphic, inverse one-to-one or many relationship.
        
                    protected        Model,$this>
    morphEagerTo(string $name, string $type, string $id, string|null $ownerKey)
        
    
    Define a polymorphic, inverse one-to-one or many relationship.
        
                    protected        Model,$this>
    morphInstanceTo(string $target, string $name, string $type, string $id, string|null $ownerKey)
        
    
    Define a polymorphic, inverse one-to-one or many relationship.
        
                    protected        TDeclaringModel>
    newMorphTo(Builder $query, Model $parent, string $foreignKey, string|null $ownerKey, string $type, string $relation)
        
    
    Instantiate a new MorphTo relationship.
        
                static            string
    getActualClassNameForMorph(string $class)
        
    
    Retrieve the actual class name for a given morph class.
        
                    protected        string
    guessBelongsToRelation()
        
    
    Guess the "belongs to" relationship name.
        
                            
    through($relationship)
        
    
    Create a pending has-many-through or has-one-through relationship.
        
                            TRelatedModel,$this>
    hasMany(TRelatedModel> $related, string|null $foreignKey = null, string|null $localKey = null)
        
    
    Define a one-to-many relationship.
        
                    protected        TDeclaringModel>
    newHasMany(Builder $query, Model $parent, string $foreignKey, string $localKey)
        
    
    Instantiate a new HasMany relationship.
        
                            
    hasManyThrough($related, $through, $firstKey = null, $secondKey = null, $localKey = null, $secondLocalKey = null)
        
    
    No description
        
                    protected        
    newHasManyThrough(Builder $query, Model $farParent, Model $throughParent, $firstKey, $secondKey, $localKey, $secondLocalKey)
        
    
    No description
        
                            TRelatedModel,$this>
    morphMany(TRelatedModel> $related, string $name, string|null $type = null, string|null $id = null, string|null $localKey = null)
        
    
    Define a polymorphic one-to-many relationship.
        
                    protected        TDeclaringModel>
    newMorphMany(Builder $query, Model $parent, string $type, string $id, string $localKey)
        
    
    Instantiate a new MorphMany relationship.
        
                            
    belongsToMany($related, $table = null, $foreignPivotKey = null, $relatedPivotKey = null, $parentKey = null, $relatedKey = null, $relation = null)
        
    
    No description
        
                    protected        
    newBelongsToMany(Builder $query, Model $parent, $table, $foreignPivotKey, $relatedPivotKey, $parentKey, $relatedKey, $relationName = null)
        
    
    No description
        
                            TRelatedModel,$this>
    morphToMany(TRelatedModel> $related, string $name, string|null $table = null, string|null $foreignPivotKey = null, string|null $relatedPivotKey = null, string|null $parentKey = null, string|null $relatedKey = null, string|null $relation = null, bool $inverse = false)
        
    
    Define a polymorphic many-to-many relationship.
        
                    protected        TDeclaringModel>
    newMorphToMany(Builder $query, Model $parent, string $name, string $table, string $foreignPivotKey, string $relatedPivotKey, string $parentKey, string $relatedKey, string|null $relationName = null, bool $inverse = false)
        
    
    Instantiate a new MorphToMany relationship.
        
                            TRelatedModel,$this>
    morphedByMany(TRelatedModel> $related, string $name, string|null $table = null, string|null $foreignPivotKey = null, string|null $relatedPivotKey = null, string|null $parentKey = null, string|null $relatedKey = null, string|null $relation = null)
        
    
    Define a polymorphic, inverse many-to-many relationship.
        
                    protected        string|null
    guessBelongsToManyRelation()
        
    
    Get the relationship name of the belongsToMany relationship.
        
                            string
    joiningTable(string $related, Model|null $instance = null)
        
    
    Get the joining table name for a many-to-many relation.
        
                            string
    joiningTableSegment()
        
    
    Get this model's half of the intermediate table name for belongsToMany relationships.
        
                            bool
    touches(string $relation)
        
    
    Determine if the model touches a given relation.
        
                            void
    touchOwners()
        
    
    Touch the owning relations of the model.
        
                    protected        array
    getMorphs(string $name, string $type, string $id)
        
    
    Get the polymorphic relationship columns.
        
                            string
    getMorphClass()
        
    
    Get the class name for polymorphic relations.
        
                    protected        TRelatedModel
    newRelatedInstance(TRelatedModel> $class)
        
    
    Create a new model instance for a related model.
        
                    protected        TRelatedModel
    newRelatedThroughInstance(TRelatedModel> $class)
        
    
    Create a new model instance for a related "through" model.
        
                            array
    getRelations()
        
    
    Get all the loaded relations for the instance.
        
                            mixed
    getRelation(string $relation)
        
    
    Get a specified relationship.
        
                            bool
    relationLoaded(string $key)
        
    
    Determine if the given relation is loaded.
        
                            $this
    setRelation(string $relation, mixed $value)
        
    
    Set the given relationship on the model.
        
                            $this
    unsetRelation(string $relation)
        
    
    Unset a loaded relationship.
        
                            $this
    setRelations(array $relations)
        
    
    Set the entire relations array on the model.
        
                            $this
    withRelationshipAutoloading()
        
    
    Enable relationship autoloading for this model.
        
                            $this
    withoutRelations()
        
    
    Duplicate the instance and unset all the loaded relations.
        
                            $this
    unsetRelations()
        
    
    Unset all the loaded relations for the instance.
        
                            array
    getTouchedRelations()
        
    
    Get the relationships that are touched on save.
        
                            $this
    setTouchedRelations(array $touches)
        
    
    Set the relationships that are touched on save.
        
                            bool
    touch(string|null $attribute = null)
        
    
    Update the model's update timestamp.
        
                            bool
    touchQuietly(string|null $attribute = null)
        
    
    Update the model's update timestamp without raising any events.
        
                            $this
    updateTimestamps()
        
    
    Update the creation and update timestamps.
        
                            $this
    setCreatedAt(mixed $value)
        
    
    Set the value of the "created at" attribute.
        
                            $this
    setUpdatedAt(mixed $value)
        
    
    Set the value of the "updated at" attribute.
        
                            Carbon
    freshTimestamp()
        
    
    Get a fresh timestamp for the model.
        
                            string
    freshTimestampString()
        
    
    Get a fresh timestamp for the model.
        
                            bool
    usesTimestamps()
        
    
    Determine if the model uses timestamps.
        
                            string|null
    getCreatedAtColumn()
        
    
    Get the name of the "created at" column.
        
                            string|null
    getUpdatedAtColumn()
        
    
    Get the name of the "updated at" column.
        
                            string|null
    getQualifiedCreatedAtColumn()
        
    
    Get the fully qualified "created at" column.
        
                            string|null
    getQualifiedUpdatedAtColumn()
        
    
    Get the fully qualified "updated at" column.
        
                static            mixed
    withoutTimestamps(callable $callback)
        
    
    Disable timestamps for the current class during the given callback scope.
        
                static            mixed
    withoutTimestampsOn(array $models, callable $callback)
        
    
    Disable timestamps for the given model classes during the given callback scope.
        
                static            bool
    isIgnoringTimestamps(string|null $class = null)
        
    
    Determine if the given model is ignoring timestamps / touches.
        
                            bool
    usesUniqueIds()
        
    
    Determine if the model uses unique ids.
        
                            void
    setUniqueIds()
        
    
    Generate unique keys for the model.
        
                            string
    newUniqueId()
        
    
    Generate a new key for the model.
        
                            array
    uniqueIds()
        
    
    Get the columns that should receive a unique identifier.
        
                            string[]
    getHidden()
        
    
    Get the hidden attributes for the model.
        
                            $this
    setHidden(array $hidden)
        
    
    Set the hidden attributes for the model.
        
                            $this
    mergeHidden(array $hidden)
        
    
    Merge new hidden attributes with existing hidden attributes on the model.
        
                            string[]
    getVisible()
        
    
    Get the visible attributes for the model.
        
                            $this
    setVisible(array $visible)
        
    
    Set the visible attributes for the model.
        
                            $this
    mergeVisible(array $visible)
        
    
    Merge new visible attributes with existing visible attributes on the model.
        
                            $this
    makeVisible(string[]|string|null $attributes)
        
    
    Make the given, typically hidden, attributes visible.
        
                            $this
    makeVisibleIf(bool|Closure $condition, string[]|string|null $attributes)
        
    
    Make the given, typically hidden, attributes visible if the given truth test passes.
        
                            $this
    makeHidden(string[]|string|null $attributes)
        
    
    Make the given, typically visible, attributes hidden.
        
                            $this
    makeHiddenIf(bool|Closure $condition, string[]|string|null $attributes)
        
    
    Make the given, typically visible, attributes hidden if the given truth test passes.
        
                            string[]
    getFillable()
        
    
    Get the fillable attributes for the model.
        
                            $this
    fillable(array $fillable)
        
    
    Set the fillable attributes for the model.
        
                            $this
    mergeFillable(array $fillable)
        
    
    Merge new fillable attributes with existing fillable attributes on the model.
        
                            string[]
    getGuarded()
        
    
    Get the guarded attributes for the model.
        
                            $this
    guard(array $guarded)
        
    
    Set the guarded attributes for the model.
        
                            $this
    mergeGuarded(array $guarded)
        
    
    Merge new guarded attributes with existing guarded attributes on the model.
        
                static            void
    unguard(bool $state = true)
        
    
    Disable all mass assignable restrictions.
        
                static            void
    reguard()
        
    
    Enable the mass assignment restrictions.
        
                static            bool
    isUnguarded()
        
    
    Determine if the current state is "unguarded".
        
                static            
    unguarded(callable $callback)
        
    
    No description
        
                            bool
    isFillable(string $key)
        
    
    Determine if the given attribute may be mass assigned.
        
                            bool
    isGuarded(string $key)
        
    
    Determine if the given key is guarded.
        
                    protected        bool
    isGuardableColumn(string $key)
        
    
    Determine if the given column is a valid, guardable column.
        
                            bool
    totallyGuarded()
        
    
    Determine if the model is totally guarded.
        
                    protected        array<string,mixed>
    fillableFromArray(array $attributes)
        
    
    Get the fillable attributes of a given array.
        
                    protected        mixed
    withoutRecursion(callable $callback, mixed $default = null)
        
    
    Prevent a method from being called multiple times on the same object within the same call stack.
        
                static    protected        
    clearRecursiveCallValue(object $object, string $hash)
        
    
    Remove an entry from the recursion cache for an object.
        
                static    protected        array
    getRecursiveCallStack(object $object)
        
    
    Get the stack of methods being called recursively for the current object.
        
                static    protected        WeakMap
    getRecursionCache()
        
    
    Get the current recursion cache being used by the model.
        
                static    protected        mixed
    setRecursiveCallValue(object $object, string $hash, mixed $value)
        
    
    Set a value in the recursion cache for the given object and method.
        
                            JsonResource
    toResource(string|null $resourceClass = null)
        
    
    Create a new resource object for the given resource.
        
                    protected        JsonResource
    guessResource()
        
    
    Guess the resource class for the model.
        
                static            array
    guessResourceName()
        
    
    Guess the resource class name for the model.
        
                    protected        string|null
    resolveResourceFromAttribute(string $class)
        
    
    Get the resource class from the class attribute.
        
                    protected        mixed
    forwardCallTo(mixed $object, string $method, array $parameters)
        
    
    Forward a method call to the given object.
        
                    protected        mixed
    forwardDecoratedCallTo(mixed $object, string $method, array $parameters)
        
    
    Forward a method call to the given object, returning $this if the forwarded call returned itself.
        
                static    protected        never
    throwBadMethodCallException(string $method)
        
    
    Throw a bad method call exception for the given method.
        
                            TCollection
    newCollection(array $models = [])
        
    
    Create a new Eloquent Collection instance.
        
                            TCollection>|null
    resolveCollectionFromAttribute()
        
    
    Resolve the collection class name from the CollectedBy attribute.
        
                            
    __construct(array $attributes = [])
        
    
    Create a new Eloquent model instance.
        
                    protected        void
    bootIfNotBooted()
        
    
    Check if the model needs to be booted and if so, do it.
        
                static    protected        void
    booting()
        
    
    Perform any actions required before the model boots.
        
                static    protected        void
    boot()
        
    
    Bootstrap the model and its traits.
        
                static    protected        void
    bootTraits()
        
    
    Boot all of the bootable traits on the model.
        
                    protected        void
    initializeTraits()
        
    
    Initialize any initializable traits on the model.
        
                static    protected        void
    booted()
        
    
    Perform any actions required after the model boots.
        
                static    protected        void
    whenBooted(Closure $callback)
        
    
    Register a closure to be executed after the model has booted.
        
                static            void
    clearBootedModels()
        
    
    Clear the list of booted models so they will be re-booted.
        
                static            void
    withoutTouching(callable $callback)
        
    
    Disables relationship model touching for the current class during given callback scope.
        
                static            void
    withoutTouchingOn(array $models, callable $callback)
        
    
    Disables relationship model touching for the given model classes during given callback scope.
        
                static            bool
    isIgnoringTouch(string|null $class = null)
        
    
    Determine if the given model is ignoring touches.
        
                static            void
    shouldBeStrict(bool $shouldBeStrict = true)
        
    
    Indicate that models should prevent lazy loading, silently discarding attributes, and accessing missing attributes.
        
                static            void
    preventLazyLoading(bool $value = true)
        
    
    Prevent model relationships from being lazy loaded.
        
                static            void
    automaticallyEagerLoadRelationships(bool $value = true)
        
    
    Determine if model relationships should be automatically eager loaded when accessed.
        
                static            void
    handleLazyLoadingViolationUsing(callable|null $callback)
        
    
    Register a callback that is responsible for handling lazy loading violations.
        
                static            void
    preventSilentlyDiscardingAttributes(bool $value = true)
        
    
    Prevent non-fillable attributes from being silently discarded.
        
                static            void
    handleDiscardedAttributeViolationUsing(callable|null $callback)
        
    
    Register a callback that is responsible for handling discarded attribute violations.
        
                static            void
    preventAccessingMissingAttributes(bool $value = true)
        
    
    Prevent accessing missing attributes on retrieved models.
        
                static            void
    handleMissingAttributeViolationUsing(callable|null $callback)
        
    
    Register a callback that is responsible for handling missing attribute violations.
        
                static            mixed
    withoutBroadcasting(callable $callback)
        
    
    Execute a callback without broadcasting any model events for all model types.
        
                            $this
    fill(array $attributes)
        
    
    Fill the model with an array of attributes.
        
                            $this
    forceFill(array $attributes)
        
    
    Fill the model with an array of attributes. Force mass assignment.
        
                            string
    qualifyColumn(string $column)
        
    
    Qualify the given column name by the model's table.
        
                            array
    qualifyColumns(array $columns)
        
    
    Qualify the given columns with the model's table.
        
                            Model
    newInstance(array<string,mixed> $attributes = [], bool $exists = false)
        
    
    Create a new instance of the given model.
        
                            Model
    newFromBuilder(array<string,mixed> $attributes = [], UnitEnum|string|null $connection = null)
        
    
    Create a new model instance that is existing.
        
                static            Builder<static>
    on(UnitEnum|string|null $connection = null)
        
    
    Begin querying the model on a given connection.
        
                static            Builder<static>
    onWriteConnection()
        
    
    Begin querying the model on the write connection.
        
                static            Collection<int,static>
    all(array|string $columns = ['*'])
        
    
    Get all of the models from the database.
        
                static            Builder<static>
    with(array|string $relations)
        
    
    Begin querying a model with eager loading.
        
                            $this
    load(array|string $relations)
        
    
    Eager load relations on the model.
        
                            $this
    loadMorph(string $relation, array $relations)
        
    
    Eager load relationships on the polymorphic relation of a model.
        
                            $this
    loadMissing(array|string $relations)
        
    
    Eager load relations on the model if they are not already eager loaded.
        
                            $this
    loadAggregate(array|string $relations, string $column, string|null $function = null)
        
    
    Eager load relation's column aggregations on the model.
        
                            $this
    loadCount(array|string $relations)
        
    
    Eager load relation counts on the model.
        
                            $this
    loadMax(array|string $relations, string $column)
        
    
    Eager load relation max column values on the model.
        
                            $this
    loadMin(array|string $relations, string $column)
        
    
    Eager load relation min column values on the model.
        
                            $this
    loadSum(array|string $relations, string $column)
        
    
    Eager load relation's column summations on the model.
        
                            $this
    loadAvg(array|string $relations, string $column)
        
    
    Eager load relation average column values on the model.
        
                            $this
    loadExists(array|string $relations)
        
    
    Eager load related model existence values on the model.
        
                            $this
    loadMorphAggregate(string $relation, array $relations, string $column, string|null $function = null)
        
    
    Eager load relationship column aggregation on the polymorphic relation of a model.
        
                            $this
    loadMorphCount(string $relation, array $relations)
        
    
    Eager load relationship counts on the polymorphic relation of a model.
        
                            $this
    loadMorphMax(string $relation, array $relations, string $column)
        
    
    Eager load relationship max column values on the polymorphic relation of a model.
        
                            $this
    loadMorphMin(string $relation, array $relations, string $column)
        
    
    Eager load relationship min column values on the polymorphic relation of a model.
        
                            $this
    loadMorphSum(string $relation, array $relations, string $column)
        
    
    Eager load relationship column summations on the polymorphic relation of a model.
        
                            $this
    loadMorphAvg(string $relation, array $relations, string $column)
        
    
    Eager load relationship average column values on the polymorphic relation of a model.
        
                    protected        int
    increment(string $column, float|int $amount = 1, array $extra = [])
        
    
    Increment a column's value by a given amount.
        
                    protected        int
    decrement(string $column, float|int $amount = 1, array $extra = [])
        
    
    Decrement a column's value by a given amount.
        
                    protected        int
    incrementOrDecrement(string $column, float|int $amount, array $extra, string $method)
        
    
    Run the increment or decrement method on the model.
        
                            bool
    update(array $attributes = [], array $options = [])
        
    
    Update the model in the database.
        
                            bool
    updateOrFail(array $attributes = [], array $options = [])
        
    
    Update the model in the database within a transaction.
        
                            bool
    updateQuietly(array $attributes = [], array $options = [])
        
    
    Update the model in the database without raising any events.
        
                    protected        int
    incrementQuietly(string $column, float|int $amount = 1, array $extra = [])
        
    
    Increment a column's value by a given amount without raising any events.
        
                    protected        int
    decrementQuietly(string $column, float|int $amount = 1, array $extra = [])
        
    
    Decrement a column's value by a given amount without raising any events.
        
                            bool
    push()
        
    
    Save the model and all of its relationships.
        
                            bool
    pushQuietly()
        
    
    Save the model and all of its relationships without raising any events to the parent model.
        
                            bool
    saveQuietly(array $options = [])
        
    
    Save the model to the database without raising any events.
        
                            bool
    save(array $options = [])
        
    
    Save the model to the database.
        
                            bool
    saveOrFail(array $options = [])
        
    
    Save the model to the database within a transaction.
        
                    protected        void
    finishSave(array $options)
        
    
    Perform any actions that are necessary after the model is saved.
        
                    protected        bool
    performUpdate(Builder $query)
        
    
    Perform a model update operation.
        
                    protected        Builder<static>
    setKeysForSelectQuery(Builder<static> $query)
        
    
    Set the keys for a select query.
        
                    protected        mixed
    getKeyForSelectQuery()
        
    
    Get the primary key value for a select query.
        
                    protected        Builder<static>
    setKeysForSaveQuery(Builder<static> $query)
        
    
    Set the keys for a save update query.
        
                    protected        mixed
    getKeyForSaveQuery()
        
    
    Get the primary key value for a save query.
        
                    protected        bool
    performInsert(Builder $query)
        
    
    Perform a model insert operation.
        
                    protected        void
    insertAndSetId(Builder $query, array<string,mixed> $attributes)
        
    
    Insert the given attributes and set the ID on the model.
        
                static            int
    destroy(Collection|array|int|string $ids)
        
    
    Destroy the models for the given IDs.
        
                            bool|null
    delete()
        
    
    Delete the model from the database.
        
                            bool
    deleteQuietly()
        
    
    Delete the model from the database without raising any events.
        
                            bool|null
    deleteOrFail()
        
    
    Delete the model from the database within a transaction.
        
                            bool|null
    forceDelete()
        
    
    Force a hard delete on a soft deleted model.
This method protects developers from running forceDelete when the trait is missing.
        
                static            bool|null
    forceDestroy(Collection|array|int|string $ids)
        
    
    Force a hard destroy on a soft deleted model.
This method protects developers from running forceDestroy when the trait is missing.
        
                    protected        void
    performDeleteOnModel()
        
    
    Perform the actual delete query on this model instance.
        
                static            Builder<static>
    query()
        
    
    Begin querying the model.
        
                            Builder<static>
    newQuery()
        
    
    Get a new query builder for the model's table.
        
                            Builder<static>
    newModelQuery()
        
    
    Get a new query builder that doesn't have any global scopes or eager loading.
        
                            Builder<static>
    newQueryWithoutRelationships()
        
    
    Get a new query builder with no relationships loaded.
        
                            Builder<static>
    registerGlobalScopes(Builder<static> $builder)
        
    
    Register the global scopes for this builder instance.
        
                            Builder<static>
    newQueryWithoutScopes()
        
    
    Get a new query builder that doesn't have any global scopes.
        
                            Builder<static>
    newQueryWithoutScope(Scope|string $scope)
        
    
    Get a new query instance without a given scope.
        
                            Builder<static>
    newQueryForRestoration(array|int $ids)
        
    
    Get a new query to restore one or more models by their queueable IDs.
        
                            
    newEloquentBuilder(Builder $query)
        
    
    Create a new Eloquent query builder for the model.
        
                    protected        Builder>|false
    resolveCustomBuilderClass()
        
    
    Resolve the custom Eloquent builder class from the model attributes.
        
                    protected        Builder
    newBaseQueryBuilder()
        
    
    Get a new query builder instance for the connection.
        
                            Pivot
    newPivot(Model $parent, array $attributes, string $table, bool $exists, string|null $using = null)
        
    
    Create a new pivot model instance.
        
                            bool
    hasNamedScope(string $scope)
        
    
    Determine if the model has a given scope.
        
                            mixed
    callNamedScope(string $scope, array $parameters = [])
        
    
    Apply the given named scope if possible.
        
                static    protected        bool
    isScopeMethodWithAttribute(string $method)
        
    
    Determine if the given method has a scope attribute.
        
                            
    toArray()
        
    
    Convert the model instance to an array.
        
                            string
    toJson(int $options = 0)
        
    
    Convert the model instance to JSON.
        
                            string
    toPrettyJson(int $options = 0)
        
    
    Convert the model instance to pretty print formatted JSON.
        
                            mixed
    jsonSerialize()
        
    
    Convert the object into something JSON serializable.
        
                            Model|null
    fresh(array|string $with = [])
        
    
    Reload a fresh model instance from the database.
        
                            $this
    refresh()
        
    
    Reload the current model instance with fresh attributes from the database.
        
                            Model
    replicate(array|null $except = null)
        
    
    Clone the model into a new, non-existing instance.
        
                            Model
    replicateQuietly(array|null $except = null)
        
    
    Clone the model into a new, non-existing instance without raising any events.
        
                            bool
    is(Model|null $model)
        
    
    Determine if two models have the same ID and belong to the same table.
        
                            bool
    isNot(Model|null $model)
        
    
    Determine if two models are not the same.
        
                            Connection
    getConnection()
        
    
    Get the database connection for the model.
        
                            string|null
    getConnectionName()
        
    
    Get the current connection name for the model.
        
                            $this
    setConnection(UnitEnum|string|null $name)
        
    
    Set the connection associated with the model.
        
                static            Connection
    resolveConnection(UnitEnum|string|null $connection = null)
        
    
    Resolve a connection instance.
        
                static            ConnectionResolverInterface|null
    getConnectionResolver()
        
    
    Get the connection resolver instance.
        
                static            void
    setConnectionResolver(ConnectionResolverInterface $resolver)
        
    
    Set the connection resolver instance.
        
                static            void
    unsetConnectionResolver()
        
    
    Unset the connection resolver for models.
        
                            string
    getTable()
        
    
    Get the table associated with the model.
        
                            $this
    setTable(string $table)
        
    
    Set the table associated with the model.
        
                            string
    getKeyName()
        
    
    Get the primary key for the model.
        
                            $this
    setKeyName(string $key)
        
    
    Set the primary key for the model.
        
                            string
    getQualifiedKeyName()
        
    
    Get the table qualified key name.
        
                            string
    getKeyType()
        
    
    Get the auto-incrementing key type.
        
                            $this
    setKeyType(string $type)
        
    
    Set the data type for the primary key.
        
                            bool
    getIncrementing()
        
    
    Get the value indicating whether the IDs are incrementing.
        
                            $this
    setIncrementing(bool $value)
        
    
    Set whether IDs are incrementing.
        
                            mixed
    getKey()
        
    
    Get the value of the model's primary key.
        
                            mixed
    getQueueableId()
        
    
    Get the queueable identity for the entity.
        
                            array
    getQueueableRelations()
        
    
    Get the queueable relationships for the entity.
        
                            string|null
    getQueueableConnection()
        
    
    Get the queueable connection for the entity.
        
                            mixed
    getRouteKey()
        
    
    Get the value of the model's route key.
        
                            string
    getRouteKeyName()
        
    
    Get the route key for the model.
        
                            Model|null
    resolveRouteBinding(mixed $value, string|null $field = null)
        
    
    Retrieve the model for a bound value.
        
                            Model|null
    resolveSoftDeletableRouteBinding(mixed $value, string|null $field = null)
        
    
    Retrieve the model for a bound value.
        
                            Model|null
    resolveChildRouteBinding(string $childType, mixed $value, string|null $field)
        
    
    Retrieve the child model for a bound value.
        
                            Model|null
    resolveSoftDeletableChildRouteBinding(string $childType, mixed $value, string|null $field)
        
    
    Retrieve the child model for a bound value.
        
                    protected        
    resolveChildRouteBindingQuery($childType, $value, $field)
        
    
    No description
        
                    protected        string
    childRouteBindingRelationshipName(string $childType)
        
    
    Retrieve the child route model binding relationship name for the given child type.
        
                            Builder
    resolveRouteBindingQuery(Model|Builder|Relation $query, mixed $value, string|null $field = null)
        
    
    Retrieve the model for a bound value.
        
                            string
    getForeignKey()
        
    
    Get the default foreign key name for the model.
        
                            int
    getPerPage()
        
    
    Get the number of models to return per page.
        
                            $this
    setPerPage(int $perPage)
        
    
    Set the number of models to return per page.
        
                static            bool
    isSoftDeletable()
        
    
    Determine if the model is soft deletable.
        
                    protected        bool
    isPrunable()
        
    
    Determine if the model is prunable.
        
                    protected        bool
    isMassPrunable()
        
    
    Determine if the model is mass prunable.
        
                static            bool
    preventsLazyLoading()
        
    
    Determine if lazy loading is disabled.
        
                static            bool
    isAutomaticallyEagerLoadingRelationships()
        
    
    Determine if relationships are being automatically eager loaded when accessed.
        
                static            bool
    preventsSilentlyDiscardingAttributes()
        
    
    Determine if discarding guarded attribute fills is disabled.
        
                static            bool
    preventsAccessingMissingAttributes()
        
    
    Determine if accessing missing attributes is disabled.
        
                            string
    broadcastChannelRoute()
        
    
    Get the broadcast channel route definition that is associated with the given entity.
        
                            string
    broadcastChannel()
        
    
    Get the broadcast channel name that is associated with the given entity.
        
                            mixed
    __get(string $key)
        
    
    Dynamically retrieve attributes on the model.
        
                            void
    __set(string $key, mixed $value)
        
    
    Dynamically set attributes on the model.
        
                            bool
    offsetExists(mixed $offset)
        
    
    Determine if the given attribute exists.
        
                            mixed
    offsetGet(mixed $offset)
        
    
    Get the value for a given offset.
        
                            void
    offsetSet(mixed $offset, mixed $value)
        
    
    Set the value for a given offset.
        
                            void
    offsetUnset(mixed $offset)
        
    
    Unset the value for a given offset.
        
                            bool
    __isset(string $key)
        
    
    Determine if an attribute or relation exists on the model.
        
                            void
    __unset(string $key)
        
    
    Unset an attribute on the model.
        
                            mixed
    __call(string $method, array $parameters)
        
    
    Handle dynamic method calls into the model.
        
                static            mixed
    __callStatic(string $method, array $parameters)
        
    
    Handle dynamic static method calls into the model.
        
                            string
    __toString()
        
    
    Convert the model to its string representation.
        
                            $this
    escapeWhenCastingToString(bool $escape = true)
        
    
    Indicate that the object's string representation should be escaped when __toString is invoked.
        
                            array
    __sleep()
        
    
    Prepare the object for serialization.
        
                            void
    __wakeup()
        
    
    When a model is being unserialized, check if it needs to be booted.