Schema::create('flats', function (Blueprint $table) {
$table->id();
$table->string('flat_name');
$table->integer('rent')->unsigned();
$table->integer('electricity_bill')->nullable()->unsigned();
$table->integer('water_bill')->nullable()->unsigned();
$table->integer('gas_bill')->nullable()->unsigned();
$table->integer('trash_van')->nullable()->unsigned();
$table->foreignId('user_id')->constrained()->onDelete('cascade');
$table->timestamps();
});
user separate table for which tenant using which flat field will be tenant_id , flat_id , from_month , to_month (update during leave) , status = [Active,Inactive]
user separate table for billing so you can generate report based on that .