.input-group is a flex row that joins a control to text (.input-group-text), buttons or a small checkbox before or after it, squaring the inner corners so the pieces read as one field.
<link rel=stylesheet href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css">
<div class="p-3 vstack gap-2">
<div class="input-group">
<span class="input-group-text">$</span><input class="form-control" value="25" aria-label="Sum">
<span class="input-group-text">.00</span><button class="btn btn-outline-secondary">Pay</button>
</div>
<div class="input-group input-group-sm">
<div class="input-group-text"><input class="form-check-input mt-0" type="checkbox"></div>
<input class="form-control" placeholder="Coupon code" aria-label="Coupon code">
</div>
</div>
Keep labels outside the group. Size the whole group with .input-group-sm or -lg, add .flex-nowrap to stop wrapping, and add .has-validation when it holds feedback (Validation).