Mass Assignment 
Mass assignment allows you to create or update multiple attributes at once. AvelPress provides security controls to protect against unauthorized attribute modification.
Fillable Attributes 
Define which attributes can be mass-assigned for security:
php
class User extends Model
{
    protected $fillable = [
        'name',
        'email',
        'status',
        'bio',
    ];
}
// Mass assignment works
$user = User::create([
    'name' => 'John Doe',
    'email' => 'john@example.com',
    'status' => 'active'
]);Guarded Attributes 
Alternatively, specify which attributes should be protected:
php
class User extends Model
{
    protected $guarded = [
        'id',
        'password',
        'admin_level',
    ];
    // All other attributes are fillable
}Creating Records with Mass Assignment 
Using create() 
php
$user = User::create([
    'name' => 'John Doe',
    'email' => 'john@example.com',
    'status' => 'active'
]);Using firstOrCreate() 
php
$user = User::firstOrCreate(
    ['email' => 'john@example.com'], // Search criteria
    ['name' => 'John Doe', 'status' => 'active'] // Additional data if creating
);Using updateOrCreate() 
php
$user = User::updateOrCreate(
    ['email' => 'john@example.com'], // Search criteria  
    ['name' => 'John Smith', 'status' => 'active'] // Data to update/create
);Updating with Mass Assignment 
php
// Mass update single model
$user = User::find(1);
$user->update(['name' => 'Jane Doe', 'status' => 'inactive']);
// Update multiple models
User::where('status', 'pending')
    ->update(['status' => 'active']);Bulk Operations 
php
// Insert multiple records
User::createMany([
    ['name' => 'John', 'email' => 'john@example.com'],
    ['name' => 'Jane', 'email' => 'jane@example.com'],
    ['name' => 'Bob', 'email' => 'bob@example.com']
]);Security Considerations 
Always use fillable or guarded attributes to prevent mass assignment vulnerabilities:
php
class User extends Model
{
    // GOOD: Only allow safe attributes
    protected $fillable = ['name', 'email', 'bio'];
    
    // DANGEROUS: Never do this in production
    // protected $guarded = [];
}CLI Integration 
When using the AvelPress CLI, you can specify fillable attributes:
bash
# Generate model with fillable attributes
avel make:model Product --fillable=name,price,description,category_idThis will create:
php
class Product extends Model {
    /**
     * The attributes that are mass assignable.
     */
    protected $fillable = [
        'name',
        'price', 
        'description',
        'category_id',
    ];
}