Assessment → Quiz, Survey) where subtypes share a core identity but diverge in attributes. Avoids STI’s schema bloat (nullable columns) and polymorphic relations’ lack of referential integrity.Assessment::find(1) returns Quiz if the record matches), reducing manual type-checking logic.Quiz::where(...) joins assessments). Benchmarking required for high-traffic endpoints.$subtypeMap, $subtypeTable, discriminator vs. lookup tables). Documentation is thorough but assumes Eloquent familiarity.id column, foreign keys)?Assessment must be a Quiz or Survey), or optional (e.g., some records may lack subtype data)?Quiz configurations)?#[Subtype] annotations in newer versions).AssessmentResource returns Quiz or Survey data).title vs. passing_score).unsignedBigInteger for id columns).Schema::create() for subtype tables and foreign()->references() for constraints.use HasSubtypes in parent models and extend SubtypeModel for subtypes.$subtypeMap, $subtypeTable, and discriminator/lookup table settings.Model::where() calls with CTI-aware queries (e.g., Quiz::where(...) auto-joins assessments).morphMap or subtype-specific logic if needed.creating, updating, etc., fire on both parent and subtype models.belongsTo, hasOne, etc., with subtype-aware constraints.Assessment → Quiz, Survey).User → AdminUser, CustomerUser).type_id in parent table).$subtypeMap.class NewSubtype extends SubtypeModel).ON DELETE SET NULL.$subtypeMap in the parent model.mysqldump or database-specific tools with --tables flag.DB::enableQueryLog() to inspect auto-generated joins.Model::resolveSubtype() to debug subtype casting issues.booted() in models to log subtype-specific actions.config('cti.missing_subtype') to handle missing subtype data (e.g., return parent model or throw exception).with() or load() for eager loading subtype relationships.How can I help you explore Laravel packages today?