Factorías en Laravel 8
Las factorías en Laravel 8 han sufrido un cambio, ahora, en lugar de utilizar el objeto $factory cómo lo hacíamos en versiones anteriores, pasan a ser clases con la siguiente definición:
De esta forma, ahora deberemos decirle a la clase Factory qué modelo debe utilizar y definir el método definition haciendo un return de los datos que representen un objeto de tipo usuario en este caso, todo ello accediendo directamente a $this->faker.
Utilizar las nuevas Factorías en Laravel 8
Para utilizar las nuevas factorías en Laravel 8 desde los Seeds simplemente debemos hacer lo siguiente:
Factorías en diferentes Namespaces
Un problema con el que nos podemos encontrar es que nuestras factorías estén en otro namespace en lugar de DatabaseFactories. Para solucionarlo, simplemente deberíamos sobrescribir el método newFactory de nuestro modelo de la siguiente forma, ejemplo sacado de un proyecto Multi Tenancy:
Con todo lo anterior tendríamos nuestro proyecto funcionando con factorías de la misma forma que lo hacíamos en versiones anteriores.