id(); $table->foreignId('user_id')->constrained()->cascadeOnDelete(); $table->foreignId('category_id')->nullable()->constrained()->nullOnDelete(); $table->string('title'); $table->string('slug')->unique(); $table->text('excerpt')->nullable(); $table->longText('body'); $table->string('featured_image')->nullable(); $table->string('status')->default('draft'); $table->timestamp('published_at')->nullable(); $table->string('meta_title')->nullable(); $table->string('meta_description')->nullable(); $table->timestamps(); $table->index(['status', 'published_at']); }); } /** * Reverse the migrations. */ public function down(): void { Schema::dropIfExists('posts'); } };