name: EloquentUserProvider
class_comment: null
dependencies:
- name: Closure
  type: class
  source: Closure
- name: UserContract
  type: class
  source: Illuminate\Contracts\Auth\Authenticatable
- name: UserProvider
  type: class
  source: Illuminate\Contracts\Auth\UserProvider
- name: HasherContract
  type: class
  source: Illuminate\Contracts\Hashing\Hasher
- name: Arrayable
  type: class
  source: Illuminate\Contracts\Support\Arrayable
properties:
- name: hasher
  visibility: protected
  comment: '# * The hasher implementation.

    # *

    # * @var \Illuminate\Contracts\Hashing\Hasher'
- name: model
  visibility: protected
  comment: '# * The Eloquent user model.

    # *

    # * @var string'
- name: queryCallback
  visibility: protected
  comment: '# * The callback that may modify the user retrieval queries.

    # *

    # * @var (\Closure(\Illuminate\Database\Eloquent\Builder<*>):mixed)|null'
methods:
- name: __construct
  visibility: public
  parameters:
  - name: hasher
  - name: model
  comment: "# * The hasher implementation.\n# *\n# * @var \\Illuminate\\Contracts\\\
    Hashing\\Hasher\n# */\n# protected $hasher;\n# \n# /**\n# * The Eloquent user\
    \ model.\n# *\n# * @var string\n# */\n# protected $model;\n# \n# /**\n# * The\
    \ callback that may modify the user retrieval queries.\n# *\n# * @var (\\Closure(\\\
    Illuminate\\Database\\Eloquent\\Builder<*>):mixed)|null\n# */\n# protected $queryCallback;\n\
    # \n# /**\n# * Create a new database user provider.\n# *\n# * @param  \\Illuminate\\\
    Contracts\\Hashing\\Hasher  $hasher\n# * @param  string  $model\n# * @return void"
- name: retrieveById
  visibility: public
  parameters:
  - name: identifier
  comment: '# * Retrieve a user by their unique identifier.

    # *

    # * @param  mixed  $identifier

    # * @return \Illuminate\Contracts\Auth\Authenticatable|null'
- name: retrieveByToken
  visibility: public
  parameters:
  - name: identifier
  - name: token
  comment: '# * Retrieve a user by their unique identifier and "remember me" token.

    # *

    # * @param  mixed  $identifier

    # * @param  string  $token

    # * @return \Illuminate\Contracts\Auth\Authenticatable|null'
- name: updateRememberToken
  visibility: public
  parameters:
  - name: user
  - name: token
  comment: '# * Update the "remember me" token for the given user in storage.

    # *

    # * @param  \Illuminate\Contracts\Auth\Authenticatable  $user

    # * @param  string  $token

    # * @return void'
- name: retrieveByCredentials
  visibility: public
  parameters:
  - name: credentials
  comment: '# * Retrieve a user by the given credentials.

    # *

    # * @param  array  $credentials

    # * @return \Illuminate\Contracts\Auth\Authenticatable|null'
- name: validateCredentials
  visibility: public
  parameters:
  - name: user
  - name: credentials
  comment: '# * Validate a user against the given credentials.

    # *

    # * @param  \Illuminate\Contracts\Auth\Authenticatable  $user

    # * @param  array  $credentials

    # * @return bool'
- name: rehashPasswordIfRequired
  visibility: public
  parameters:
  - name: user
  - name: credentials
  - name: force
    default: 'false'
  comment: '# * Rehash the user''s password if required and supported.

    # *

    # * @param  \Illuminate\Contracts\Auth\Authenticatable  $user

    # * @param  array  $credentials

    # * @param  bool  $force

    # * @return void'
- name: newModelQuery
  visibility: protected
  parameters:
  - name: model
    default: 'null'
  comment: '# * Get a new query builder for the model instance.

    # *

    # * @template TModel of \Illuminate\Database\Eloquent\Model

    # *

    # * @param  TModel|null  $model

    # * @return \Illuminate\Database\Eloquent\Builder<TModel>'
- name: createModel
  visibility: public
  parameters: []
  comment: '# * Create a new instance of the model.

    # *

    # * @return \Illuminate\Database\Eloquent\Model'
- name: getHasher
  visibility: public
  parameters: []
  comment: '# * Gets the hasher implementation.

    # *

    # * @return \Illuminate\Contracts\Hashing\Hasher'
- name: setHasher
  visibility: public
  parameters:
  - name: hasher
  comment: '# * Sets the hasher implementation.

    # *

    # * @param  \Illuminate\Contracts\Hashing\Hasher  $hasher

    # * @return $this'
- name: getModel
  visibility: public
  parameters: []
  comment: '# * Gets the name of the Eloquent user model.

    # *

    # * @return string'
- name: setModel
  visibility: public
  parameters:
  - name: model
  comment: '# * Sets the name of the Eloquent user model.

    # *

    # * @param  string  $model

    # * @return $this'
- name: getQueryCallback
  visibility: public
  parameters: []
  comment: '# * Get the callback that modifies the query before retrieving users.

    # *

    # * @return (\Closure(\Illuminate\Database\Eloquent\Builder<*>):mixed)|null'
- name: withQuery
  visibility: public
  parameters:
  - name: queryCallback
    default: 'null'
  comment: '# * Sets the callback to modify the query before retrieving users.

    # *

    # * @param  (\Closure(\Illuminate\Database\Eloquent\Builder<*>):mixed)|null  $queryCallback

    # * @return $this'
traits:
- Closure
- Illuminate\Contracts\Auth\UserProvider
- Illuminate\Contracts\Support\Arrayable
interfaces:
- UserProvider