First, dynamic property because you can retrieve an input value using $request->input('email'), or $request->email.
A dynamic property is not a public property that is defined on the Request class, instead in PHP, we can implement a magic __get method on the class which responds to messages for protected, private or non-existing instance properties.
The Illuminate Request class has this implementation, which attempts to retrieve the value for a given $key from the payload (inputs) array (returned by all()), or fallback to the Route wildcard segment:
/**
* Get an input element from the request.
*
* @param string $key
* @return mixed
*/
public function __get($key)
{
return Arr::get($this->all(), $key, fn () => $this->route($key));
}