Preheat oven to 350 degrees. Melt butter in a large skillet, over medium-high heat then add diced onion and minced garlic. Cook until fragrant and onion becomes translucent (about two minutes).
Stir in flour and black pepper and cook for another two minutes to make a simple roux.
Slowly pour milk into pan while stirring to incorporate into the mixture (this helps prevent lumps). Continue stirring and cooking until mixture is thickened and bubbly (about 5 minutes).
Remove from heat and stir in salt, mustard, cream cheese, and 2 cups of shredded cheddar cheese until sauce is melted and uniform.
Add shaved brussels sprouts, and cooked rice to cheese sauce and mix until all sprouts are coated. Spread into a casserole dish then sprinkle the remaining cheddar cheese over top. Bake uncovered for 30 minutes.
Notes
Don't use pre-shredded cheese (that you'd buy in a bag from the grocery store) here as it is typically coated with an anti-caking agent that affects the way it melts in recipes like this.
Shredding cheese can be made much quicker by using a food processor with a shred disc attachment.
You can use many different grains or legumes in this recipe such as rice, quinoa, and legumes.