// Basic usage
User user1 = new User.Builder("John", "Doe")
    .age(30)
    .email("[email protected]")
    .phone("123-456-7890")
    .build();

// Minimal required parameters
User user2 = new User.Builder("Jane", "Smith")
    .build();

// With some optional parameters
User user3 = new User.Builder("Bob", "Johnson")
    .email("[email protected]")
    .build();

// Method chaining is readable
User user4 = new User.Builder("Alice", "Williams")
    .age(25)
    .email("[email protected]")
    .phone("555-1234")
    .build();

// Product builder usage
Product product = new ProductBuilder()
    .name("Laptop")
    .price(999.99)
    .category("Electronics")
    .build();

// Validation example
try {
    User invalid = new User.Builder("Test", "User")
        .age(-5) // Will throw exception in build()
        .build();
} catch (IllegalStateException e) {
    System.out.println("Validation failed: " + e.getMessage());
}