The problem is that you avoid to understand the simplest answer, Illuminate\Support\Fluent is not only meant for migrations.
- Let's first check the usage http://packanalyst.com/class?q=Illuminate%5CSupport%5CFluent by everyone else. Most of these external packages is not even related to building schema let alone using
->integer('test')->unique(). - Laravel itself use it outside of migrations:
-
https://github.com/laravel/framework/blob/5.1/src/Illuminate/Support/Traits/CapsuleManagerTrait.php#L35 is used as an alternative to config when using
CapsuleDatabase (Illuminate\Databaseoutside of Laravel app). - https://github.com/laravel/framework/blob/5.1/src/Illuminate/Validation/Validator.php#L243 even in Validation.
-
https://github.com/laravel/framework/blob/5.1/src/Illuminate/Support/Traits/CapsuleManagerTrait.php#L35 is used as an alternative to config when using
- It's defined under
Illuminate\Supportnamespace, and notIlluminate\Database\Schema\FluentColumnetc. That should suggest that it's a generic class that many consider as alternative tostdClass, just as how people useCollectioninstead of simplearray.